Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
NotCVE-2026-0014 — Prueba de concepto y aviso para un path traversal CWE-22 en el gestor de arrastrar y soltar de InputLeap, con pasos de reproducción, script de explotación y guía de remediación. | Kitploit
Herramientas/GitHubGitHub/cduram/notcve-2026-0014
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de Penetración
GitHubcduram/notcve-2026-0014

NotCVE-2026-0014

Prueba de concepto y aviso para un path traversal CWE-22 en el gestor de arrastrar y soltar de InputLeap, con pasos de reproducción, script de explotación y guía de remediación.

Ver Repositorio
17hace 15h 11mAú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

Resumen

Producto: InputLeap v3.0.3
Proveedor: input-leap
Vulnerabilidad: Path Traversal
CWE: CWE-22 Limitación Inadecuada de un Nombre de Ruta a un Directorio Restringido ('Path Traversal')

Descripción

El gestor de arrastrar y soltar de InputLeap intenta sanear los nombres de archivo encontrando el último separador de ruta y conservando solo la parte posterior a este. Cuando no se encuentra ningún separador, la búsqueda de cadenas en C++ devuelve un valor centinela especial llamado npos para indicar un fallo. Sin embargo, el código nunca verifica este centinela antes de usar el resultado en cálculos aritméticos. Dado que npos se define como el mayor entero sin signo posible, restarlo provoca un desbordamiento silencioso y produce una respuesta aparentemente válida que es completamente errónea: en lugar de devolver solo el nombre del archivo, devuelve la cadena original completa sin sanear. Un atacante puede explotar esto creando un mensaje donde una entrada carece de separador mientras que otra contiene uno que no coincide — la heurística global de detección de separadores del código se invierte, la búsqueda falla silenciosamente y ....\AppData...\Startup\evil.exe pasa sin ser tocado. Esa cadena luego se concatena al directorio de destino y se entrega al sistema operativo, que interpreta las secuencias .. y escribe el archivo fuera de la carpeta prevista. La vulnerabilidad existe porque falta una comprobación defensiva para el caso de "no encontrado".

Pasos para Reproducir

  1. Habilitar --enable-drag-drop en el objetivo (opcional, por defecto DESACTIVADO).
  2. Como par conectado, iniciar un mensaje de transferencia de archivos por arrastrar y soltar cuyo dato de nombre de archivo incrustado contenga un carácter "/" en algún lugar del búfer (para forzar slash="/") mientras que el segmento de nombre de archivo real usa separadores "\", por ejemplo incrustando un "/" suelto antes en el blob de datos y un nombre de archivo de "..\..\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\evil.exe".
  • El find_last_of(slash, ...) de DragInformation::parseDragInfo devuelve npos para la porción del nombre de archivo separada por "\", causando un desbordamiento aritmético sin signo y devolviendo la ruta completa sin truncar.
  • DropHelper::writeToDir concatena esta ruta al directorio de destino de soltado del usuario (por defecto el Escritorio) y escribe el archivo sin canonicalización, depositándolo en la carpeta Startup.
  • En el siguiente inicio de sesión, evil.exe se ejecuta como el usuario víctima.
  • Código Afectado

    /src/lib/inputleap/DragInformation.cpp
    /src/lib/inputleap/DropHelper.cpp

    Prueba de Concepto o No Hay Nada

    Se ha proporcionado una POC que soporta conexiones TLS y sin cifrado al servidor.

    input-leap-directory-traversal-poc.py

    Impacto

    Un atacante puede explotar esta vulnerabilidad para subir un archivo a una ruta arbitraria fuera de la carpeta predeterminada o asignada. Esto podría llevar a la ejecución de código

    Remediación Sugerida

    1. En DragInformation::parseDragInfo, reemplazar la heurística de detección de barras por std::filesystem::path(filename).filename() para garantizar que solo se extraiga el nombre base.
    2. En DropHelper::writeToDir, canonicalizar la ruta final con std::filesystem::canonical y rechazar si no comienza con destination.
    3. Rechazar nombres de archivo que contengan "..", bytes NUL, letras de unidad (X:), o separadores iniciales.

    Cronología de Divulgación

    • 27 de julio de 2026 -- Se intentó reportar al proyecto InputLeap, pero el día antes de contactar archivaron el proyecto. Se reportó a NotCVE.
    • 24 de septiembre de 2026 -- NotCVE-2026-0014 Publicado.
    Descargar herramienta