cd ~/blog

~/vulns/wpdiscuz-unauthenticated-file-upload-cve-2020-24186.md

wpDiscuz Unauthenticated File Upload (CVE-2020-24186)

rceautor: Jordy Pérez Osorio aviso legal
WordPresswpDiscuzunrestricted-file-uploadRCECVE-2020-24186

~1 min de lectura


1. Descripción técnica

CVE-2020-24186 afecta a wpDiscuz 7.0 hasta 7.0.4 y permite a un usuario no autenticado cargar tipos de archivo peligrosos mediante la acción AJAX wmuUploadFiles. El plugin intenta validar adjuntos de comentarios, pero la comprobación puede aceptar contenido PHP manipulado. Si WordPress lo guarda en una ruta ejecutable, una petición posterior obtiene Remote Code Execution.

2. Impacto

El código se ejecuta con los permisos de la cuenta que atiende PHP, normalmente el usuario del servidor web. El fallo no concede privilegios del sistema operativo superiores a esa cuenta por sí solo.

3. Condiciones necesarias

  • Una versión afectada de wpDiscuz con la funcionalidad vulnerable accesible.
  • Capacidad de enviar la solicitud de carga sin autenticación.
  • Almacenamiento del archivo bajo una ruta pública donde PHP se interprete.
  • Conocimiento o recuperación de la URL generada para el archivo.

4. Validación y detección

Buscar peticiones no autenticadas a wmuUploadFiles, archivos PHP o contenido ejecutable dentro de los directorios de carga de WordPress y accesos posteriores a esos archivos. La versión reportada por un scanner sólo es una pista; la aceptación y ejecución del archivo confirman la cadena.

5. Explotación documentada

5.1. Beloved

WPScan identificó wpDiscuz 7.0.4. Un módulo de Metasploit cargó el archivo sin autenticación y la shell resultante ejecutó id como www-data.

6. Mitigación

  • Actualizar wpDiscuz y WordPress a versiones mantenidas.
  • Impedir ejecución de PHP dentro de los directorios de archivos subidos.
  • Validar contenido, extensión y tipo MIME en el servidor.
  • Revisar cargas existentes y registros de la acción AJAX vulnerable.

7. Clasificación y referencias

// relacionados