Aviso de seguridad de Premium Packages (WordPress Download Manager)
Si recibió un correo electrónico mío que le remite a esta página, es porque su sitio web
parece estar ejecutando una versión vulnerable de Premium Packages (el plugin de
WordPress wpdm-premium-packages, un complemento de WordPress Download Manager de
Shahjada / wpdownloadmanager.com). Esta página explica por qué importa y cómo corregirlo.
Este aviso se refiere a CVE-2026-15348, una elusión de autenticación no autenticada en el gestor de descargas del plugin que podría permitir a un visitante no autorizado iniciar sesión como un cliente u otra cuenta que no sea de administrador en su tienda. Afecta a las versiones 4.7.0 hasta 7.0.4 y está corregido en 7.0.5. Si está ejecutando una versión afectada, actualice Premium Packages a 7.0.5 o posterior.
Una palabra sobre la urgencia, porque se sitúa entre la de mis otros avisos: este problema no requiere ningún inicio de sesión (es totalmente no autenticado), así que actualizar sin demora merece la pena. Al mismo tiempo, es un fallo de acceso a cuentas que afecta a propietarios de pedidos que no son administradores, no una toma de control del servidor ni de una cuenta de administrador completa, y no hay indicios de que se esté explotando (no figura en el catálogo de vulnerabilidades explotadas conocidas de CISA, y no tengo constancia de informes de explotación). Esta página es un aviso preventivo, no un informe de incidente. Actualizar cierra el problema, y no se implica ninguna respuesta de emergencia.
Este es un fallo de un plugin, no un fallo del núcleo de WordPress. Un WordPress totalmente actualizado no le protege si el propio plugin Premium Packages está en una versión afectada.
¿Es legítimo este mensaje?
Sí. Se trata de un aviso de buena fe, según el principio de la divulgación responsable, de un investigador de seguridad independiente. No le pido dinero, contraseñas ni acceso a su sitio, y no he intentado entrar en él, subir nada ni explotar nada.
Lo único que hice fue mirar archivos visibles públicamente que su sitio web ofrece a cada
visitante (del mismo modo que su página de inicio es pública) y anotar la información de
versión que el plugin Premium Packages publica en su archivo readme.txt público. En
concreto, no toqué el punto de acceso vulnerable, y nada en esta comprobación toca sus
datos, su área de administración ni ninguna parte privada de su sitio (hay más detalle en
Qué hice y qué no hice más abajo).
Si desea verificar quién soy, consulte los datos de contacto al final de esta página y la página Acerca de.
Por qué importa
Premium Packages es un complemento de WordPress Download Manager (alrededor de 2.000
instalaciones activas) que permite a un sitio vender productos digitales y descargas. En las
versiones afectadas, el gestor download() del plugin se ejecuta en una solicitud no
autenticada. Decodifica un parámetro de URL controlado por el atacante (wpdmppdl) que
solo está codificado en base64, sin firma ni nonce que demuestre que la solicitud es
genuina, y luego emite las cookies de inicio de sesión de WordPress tras una comprobación de
“dominio” cuyos dos lados los suministra el atacante (así que la comprobación se
satisface trivialmente). Esta clase de error es una elusión de autenticación: una ruta
lateral entrega una sesión iniciada sin llegar a verificar quién la solicita.
El efecto práctico es que un visitante no autenticado podría iniciar sesión como cualquier usuario que no sea administrador y que sea propietario de un pedido en la tienda: una cuenta de cliente, suscriptor, autor, editor o gestor de tienda. Para ser claro sobre el techo de esto: no concede acceso de administrador, y no entrega por sí mismo a un atacante su servidor. Es una toma de control de cuentas de propietarios de pedidos que no son administradores.
A este problema no se le asignó una puntuación CVSS por la autoridad asignadora, así que no le adjuntaré un número; cualitativamente es serio porque no requiere ningún inicio de sesión, pero acotado porque el acceso que otorga no es de administrador. Si mi correo citaba este problema, significa que la versión que informa su sitio cae dentro del rango afectado. No he probado si su sitio concreto es explotable, solo que informa de una versión afectada.
La buena noticia: actualizar a la versión corregida cierra el problema, y la actualización es sencilla.
¿Estoy afectado? Cómo comprobar su versión
Esta es la única parte de este aviso que difiere de los otros que envío, porque los campos de versión públicos de este plugin no son fiables, así que conviene leerla con atención.
La comprobación autorizada es el área de administración de WordPress. Esta muestra la versión realmente instalada:
- Inicie sesión en su panel de WordPress (normalmente en
yourdomain.com/wp-admin). - Vaya a Plugins luego Plugins instalados.
- Busque Premium Packages y anote la versión que se muestra bajo su nombre.
Después aplique esta regla, y tenga en cuenta que las versiones se comparan de forma numérica, no alfabética:
- Cualquier versión anterior a 7.0.5: afectada, actualice ahora.
- 7.0.5 o más reciente: ya corregida.
¿Por qué no leer simplemente los archivos públicos? Porque en el caso de este plugin pueden inducirle a error:
- La línea “Stable tag:” del
readme.txtpúblico del plugin va por detrás de su propio código. Un sitio que ejecuta la última versión vulnerable (7.0.4) publicaStable tag: 7.0.3, por ejemplo. Así que el readme público es una señal fiable de “corregido” solo cuando indica 7.0.5 o superior. Un número inferior no le dice de forma fiable su versión exacta; trate cualquier cosa por debajo de 7.0.5 como “comprobar en wp-admin y actualizar”. - No juzgue su versión por el número
?ver=de las URL de script o de estilo del plugin. El plugin congeló su constante de versión interna en7.0.4en la versión de seguridad 7.0.5, así que un sitio 7.0.5 ya parcheado sigue sirviendo recursos etiquetados con?ver=7.0.4; y el?ver=del archivo CSS es en realidad la versión del núcleo de WordPress, no la del plugin. Ninguno refleja la versión real del plugin. Use wp-admin.
Cómo actualizar
La vía más segura es actualizar a través del propio WordPress, y hacer antes una copia de seguridad:
- Haga una copia de seguridad de su sitio (archivos y base de datos) antes de realizar cambios. La mayoría de los proveedores de alojamiento ofrecen copias de seguridad con un solo clic, o use un plugin de copia de seguridad de WordPress.
- En la administración de WordPress, vaya a Escritorio luego Actualizaciones, o Plugins luego Plugins instalados. Si aparece una actualización de Premium Packages, instálela desde aquí.
- Si prefiere la línea de comandos, WP-CLI hace lo mismo:
wp plugin update wpdm-premium-packages. - Si no aparece ninguna actualización, puede obtener la última versión directamente desde la página del plugin en el directorio de WordPress.org, Premium Packages, y actualizar mediante Plugins luego Añadir nuevo plugin luego Subir plugin.
- Después de actualizar, confirme el nuevo número de versión (7.0.5 o posterior) en Plugins luego Plugins instalados con los pasos anteriores, y compruebe que sus descargas y funciones de tienda funcionan con normalidad.
Ya que está en ello, conviene confirmar que el núcleo de WordPress, WordPress Download Manager y sus demás plugins están actualizados, ya que el mismo principio se aplica a todos ellos.
Después de actualizar
Actualizar a 7.0.5 o posterior cierra el problema, y para la mayoría de las tiendas esa es toda la tarea. No hay indicios de que este fallo se haya explotado, así que no se implica ninguna respuesta de emergencia: no necesita tratar su sitio como comprometido, ponerlo fuera de línea ni forzar restablecimientos de contraseña.
Dado que el fallo podría permitir a un visitante no autorizado actuar sobre una cuenta de cliente u otra que no sea de administrador, sí resulta sensato un seguimiento rutinario: eche un vistazo a la actividad reciente de cuentas de clientes y pedidos en busca de algo que no le resulte familiar, por ejemplo pedidos o cambios de cuenta que un cliente no hizo, o inicios de sesión que no encajen con la actividad normal. Trátelo como el mantenimiento ordinario que una tienda realiza periódicamente, no como una respuesta a incidentes. Si algo parece incorrecto, se aplican los pasos habituales (restablezca la contraseña de esa cuenta y revise la actividad con el cliente), y puede escribirme con cualquier pregunta.
Qué hice y qué no hice
Para ser totalmente transparente sobre la comprobación que hay detrás de mi correo: solo
leí archivos públicos que su sitio ya ofrece a cada visitante, en concreto el archivo
readme.txt público del plugin y su página de inicio. No accedí a su área de
administración de WordPress, a su base de datos ni a ninguna parte privada del sitio. En
particular, no toqué el punto de acceso vulnerable, y no probé ni exploté nada.
Se trata de una observación basada en la versión: su sitio informa de una versión dentro del rango afectado. Un sitio en ese rango puede estar ya protegido por otros medios (por ejemplo un cortafuegos de aplicaciones web, o una corrección retroaplicada), así que este aviso no es una afirmación de que su sitio fuera explotable en el momento en que lo comprobé.
No tengo webmaster / estoy atascado
Si usted no es la persona que mantiene el sitio, reenvíe esta página a quien lo haga (su desarrollador web, agencia o proveedor de alojamiento). Reconocerán los pasos anteriores con rapidez.
Si mantiene el sitio usted mismo y se atasca, con gusto le ayudo a orientarse en la dirección correcta sin coste alguno. Póngase en contacto usando los datos de abajo.
Contacto
Evan Harris, investigador de seguridad
- Correo electrónico: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Me pongo en contacto por problemas como este únicamente para ayudar a los operadores a asegurar sus sitios. Si prefiere que no se le vuelva a contactar, simplemente dígamelo y lo respetaré.
Referencias
Avisos oficiales y seguimiento
Proveedor / plugin