| Nombre del plugin | LearnPress |
|---|---|
| Tipo de vulnerabilidad | Manipulación de base de datos no autenticada |
| Número CVE | CVE-2025-11372 |
| Urgencia | Medio |
| Fecha de publicación de CVE | 2025-10-18 |
| URL de origen | CVE-2025-11372 |
Urgent: LearnPress <= 4.2.9.3 — Broken Access Control (CVE-2025-11372) — What WordPress Site Owners and Admins Must Do Now
Autor: Experto en seguridad de Hong Kong · Fecha: 2025-10-18 · Etiquetas: WordPress, LearnPress, seguridad LMS, Firewall de Aplicaciones Web, CVE-2025-11372
Un aviso conciso y enfocado técnicamente y un plan de acción de un equipo de seguridad con sede en Hong Kong. Este informe proporciona orientación práctica y sensible al tiempo para que los propietarios y administradores de sitios evalúen la exposición, apliquen mitigaciones de emergencia y realicen verificaciones posteriores a la corrección.
Resumen
El 18 de octubre de 2025 se divulgó una vulnerabilidad de control de acceso roto que afecta a LearnPress (un plugin de Sistema de Gestión de Aprendizaje de WordPress ampliamente utilizado) y se le asignó el CVE-2025-11372. El problema afecta a las versiones de LearnPress hasta e incluyendo 4.2.9.3 y se corrigió en la versión 4.2.9.4.
La vulnerabilidad proviene de la falta de verificaciones de autorización en uno o más puntos finales que permiten solicitudes no autenticadas para manipular tablas de base de datos del plugin. En términos prácticos, un atacante no autenticado —sin estar conectado— puede ser capaz de realizar operaciones contra las tablas de base de datos de LearnPress (por ejemplo, crear, actualizar o eliminar registros utilizados por el LMS). La gravedad se clasifica como Media (CVSS 6.5). Aunque no es una ejecución remota de código por sí sola, es significativa porque puede corromper datos, alterar contenido o habilitar ataques posteriores.
Qué es la vulnerabilidad — lenguaje sencillo
- Tipo de vulnerabilidad: Control de Acceso Roto / Falta de Autorización.
- Affected versions: LearnPress <= 4.2.9.3.
- Corregido en: LearnPress 4.2.9.4.
- CVE: CVE-2025-11372.
- Privilegio requerido para explotar: No autenticado (sin inicio de sesión requerido).
- Resumen de riesgos: Un atacante no autenticado puede invocar un punto final de LearnPress que realiza manipulación de tablas de base de datos y carece de las verificaciones de capacidad/nonces adecuadas. Esto puede permitir la inserción, modificación o eliminación de datos relacionados con el LMS (cursos, lecciones, inscripciones, entradas meta, etc.) dependiendo de qué tablas y operaciones estén expuestas.
Importante: El impacto preciso depende de qué tablas de base de datos toca el punto final y cómo está configurado el sitio. La explotación podría llevar a la pérdida de datos, manipulación de contenido, manipulación de inscripciones o cambios de configuración que debiliten el control de acceso. También puede encadenarse con otros problemas para aumentar el impacto.
Por qué los plugins LMS son objetivos de alto valor
Los Sistemas de Gestión de Aprendizaje albergan contenido de cursos, registros de estudiantes, calificaciones y a veces información de pago. Los atacantes apuntan a los plugins LMS por varias razones:
- Acceso a información de identificación personal (PII) como nombres y correos electrónicos de estudiantes.
- Manipulación del contenido del curso para insertar material o enlaces maliciosos.
- Manipulación de inscripciones para otorgar acceso no autorizado a contenido de pago.
- Creación de persistencia (puertas traseras) a través de publicaciones, páginas o cuentas de usuario.
- Aprovechamiento de flujos de trabajo de LMS para phishing o recolección de credenciales.
Debido a que este error de LearnPress permite la manipulación de bases de datos no autenticadas, la superficie de ataque incluye datos y operaciones críticas de LMS. Trata los sitios afectados como en riesgo hasta que sean parcheados y verificados.
Cómo un atacante podría explotar CVE-2025-11372 (escenarios de alto nivel)
- Escenario A — Manipulación de datos: Insertar o eliminar filas de las tablas de LearnPress (por ejemplo, registros de cursos o metadatos de lecciones), lo que lleva a cursos rotos o informes corruptos.
- Escenario B — Escalación de inscripciones: Agregar inscripciones para eludir muros de pago o interrumpir la lógica empresarial.
- Escenario C — Inyección de contenido almacenado: Escribir campos de contenido que contengan HTML/JS malicioso que luego se ejecute en el navegador de instructores o estudiantes (pivot de XSS almacenado).
- Escenario D — Encadenamiento con otros fallos: Alterar la configuración del plugin para exponer datos de depuración o crear caminos más fáciles para la carga de archivos o escalación de privilegios.
Incluso si el fallo no puede crear directamente usuarios administradores o escribir archivos PHP, las consecuencias para la integridad y confianza del LMS pueden ser severas.
Acciones inmediatas (qué hacer en los próximos 30–120 minutos)
-
Confirmar versión del plugin
Verificar la versión de LearnPress en WP Admin: Panel de control → Plugins → Plugins instalados → LearnPress. O a través de WP-CLI:
wp plugin list --status=active | grep learnpress. También puedes inspeccionarwp-content/plugins/learnpress/readme.txto encabezados de plugins. -
Si está ejecutando una versión vulnerable (≤ 4.2.9.3) — actualice ahora
Actualice LearnPress inmediatamente a 4.2.9.4 o posterior. Utilice el actualizador de administración de WordPress o WP-CLI:
wp plugin actualizar learnpress. Si opera un entorno gestionado, programe la actualización sin demora. -
Si no puede actualizar de inmediato
- Ponga el sitio en modo de mantenimiento para prevenir la actividad del usuario durante la remediación.
- Desactive temporalmente el plugin LearnPress si es tolerable:
wp plugin desactivar learnpress. Esto romperá la funcionalidad del LMS pero detendrá el vector de ataque. - Aplique restricciones a nivel de host o servidor web para bloquear el acceso a los puntos finales vulnerables (ejemplos a continuación).
-
Revise los registros en busca de solicitudes sospechosas
Busque solicitudes anómalas a los puntos finales de LearnPress, acciones AJAX o parámetros de consulta inusuales. Busque picos en las solicitudes POST a
admin-ajax.phpo llamadas directas bajo/wp-content/plugins/learnpress/. -
Escanee en busca de indicadores de compromiso (IOCs)
Ejecute análisis de malware, revise las cargas y
wp-contentbusque nuevos archivos, y valide el contenido de la base de datos (consultas a continuación).
Detección: Indicadores de Compromiso (IOCs) y consultas
Ajuste las consultas SQL a su prefijo de DB (reemplazar wp_ donde sea aplicable). Los nombres de las tablas de LearnPress comúnmente utilizan wp_learnpress_*, pero las implementaciones varían.
- Verificar nuevos usuarios administradores:
SELECT ID, user_login, user_email, user_registered FROM wp_users WHERE user_status = 0 ORDER BY user_registered DESC LIMIT 50;
- Publicaciones recientes o modificadas de cursos de LearnPress (adapte los nombres de las tablas según sea necesario):
SELECT * FROM wp_posts WHERE post_type IN ('lp_course', 'lesson', 'lp_quiz') ORDER BY post_modified DESC LIMIT 50; - Buscar etiquetas de script inyectadas:
SELECT ID, post_title, post_modified FROM wp_posts WHERE post_content LIKE '%