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
CVE-2026-52886 — Notepad++ CVE-2026-52886 — session.xml backupFilePath starts_with() path traversal (GHSA-rqfm-pw34-r7j6) | Kitploit
Herramientas/GitHubGitHub/v3s9er/cve-2026-52886
Vulnerability AnalysisExploitationData Exfiltration
GitHubv3s9er/cve-2026-52886

CVE-2026-52886

Notepad++ CVE-2026-52886 — session.xml backupFilePath starts_with() path traversal (GHSA-rqfm-pw34-r7j6)

Ver Repositorio
hace 6 díasAú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

Path Traversal: Bypass de verificación de prefijo starts_with()

Notepad++ — Lectura arbitraria de archivos mediante traversal de backupFilePath en session.xml

Aviso

  • GHSA: GHSA-rqfm-pw34-r7j6
  • CVE: CVE-2026-52886
  • Gravedad: Moderada
  • Afectado: < v8.9.6.4
  • Corregido: v8.9.7
  • Commit del parche: 7e66f36
  • Archivo afectado: PowerEditor/src/Notepad_plus.cpp (restauración de sesión — validación de backupFilePath)
  • Plataforma: Windows 11 Pro x64
  • Privilegio requerido: Usuario estándar (acceso de escritura a session.xml)
  • Investigador: v3s9er (RAGE)
  • Divulgado: 2026-06-05

Resumen

Notepad++ valida el atributo backupFilePath durante la restauración de sesión usando una comparación de prefijo de cadena bruta mediante std::wstring::starts_with(), sin normalizar la ruta primero. Una ruta manipulada que comienza con el prefijo legítimo del directorio de respaldo pero contiene secuencias de traversal ..\ supera la verificación, aunque se resuelve a una ubicación arbitraria cuando el sistema operativo abre el archivo — cargando el contenido de cualquier archivo legible en una pestaña del editor.

Descripción técnica

Al iniciar con el modo de instantánea (respaldo) habilitado, Notepad++ restaura la sesión anterior desde session.xml. Se espera que el backupFilePath de cada entrada se encuentre dentro del directorio de respaldo de la aplicación. El control de integridad solo verifica que la ruta almacenada comience con la cadena esperada del directorio de respaldo. Debido a que la comparación se realiza sobre la cadena cruda, sin normalizar, un atacante antepone el prefijo legítimo y luego sale del directorio con secuencias ..\.

Causa raíz

La verificación comprueba un prefijo textual; el uso abre la ruta resuelta por el sistema operativo. Ambos difieren una vez que está presente ..\.

OperaciónOrigenComportamiento
VERIFICACIÓNCadena bruta backupFilePathstarts_with(backupDir) — pasa si coincide el prefijo
USORuta resuelta por el SOLas secuencias ..\ colapsan a una ubicación arbitraria

Escenario de ataque

Precondición: Acceso de escritura a session.xml, modo de instantánea/respaldo habilitado.

Pasos:

  1. Sobrescribir session.xml, inyectando un backupFilePath manipulado: <backupDir>\..\..\..\..\Users\victim\.ssh\id_rsa
  2. El prefijo <backupDir>\ satisface starts_with(), por lo que la validación pasa.
  3. Iniciar Notepad++ (se activa la restauración de sesión).
  4. El sistema operativo colapsa las secuencias ..\; se abre el archivo objetivo.
  5. El contenido del archivo arbitrario se carga en una pestaña del editor.

Resultado: Exfiltración de solo lectura — el contenido del archivo objetivo es visible en el editor, incluidos archivos sensibles como claves SSH, archivos de configuración de entorno y almacenes de credenciales.

Impacto

  • Tipo: Lectura arbitraria de archivos (Path Traversal)
  • Administrador requerido: No
  • Solicitud de UAC: No
  • Exposición: Claves privadas SSH, archivos .env / de configuración, almacenes de credenciales — cualquier archivo legible por el usuario
  • CWE: CWE-22 (Limitación incorrecta de un nombre de ruta a un directorio restringido)

Prueba de concepto

Requisitos:

  • Notepad++ v8.9.6.2 portable x64 con configuración de respaldo/instantánea
  • Acceso de escritura a session.xml
  • Un payload backupFilePath: prefijo del directorio de respaldo + secuencias de traversal ..\ + ruta del archivo objetivo

Al inyectar la ruta manipulada y lanzar la aplicación, el archivo objetivo se carga en una pestaña del editor.

Análisis del parche

La corrección (commit 7e66f36) realiza una normalización adecuada de la ruta antes de la validación, por lo que las secuencias ..\ se colapsan antes de la comparación de prefijo — la ruta verificada y la ruta usada ahora coinciden.

Referencias

  • GHSA-rqfm-pw34-r7j6
  • CVE-2026-52886
  • Commit 7e66f36
  • Lanzamiento de Notepad++ v8.9.7
Descargar herramienta