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
Project-CVE-2026-33017 — CVE-2026-33017 - Exploit de RCE no autenticado en Langflow | Kitploit
Herramientas/GitHubGitHub/e4zyy/project-cve-2026-33017
ReconocimientoMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónComando y ControlHerramienta de Acceso RemotoDesarrollo de Payloads
GitHube4zyy/project-cve-2026-33017

Project-CVE-2026-33017

CVE-2026-33017 - Exploit de RCE no autenticado en Langflow

hace 9h 40mAú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 →
Ver Repositorio
Compartir

CVE-2026-33017 Script de Langflow — Explicación del Código

codificado por: Xer0TLabs x Persephrak Decentralized Syndicate

Propósito de este documento

Este documento es una explicación de alto nivel del programa Python suministrado para revisión, respuesta a incidentes y análisis defensivo. Intencionalmente no incluye instrucciones de operación, orientación sobre selección de objetivos, ejemplos de payloads ni procedimientos para obtener acceso a un sistema.

El script se etiqueta a sí mismo como un exploit para un supuesto problema de ejecución remota de código no autenticada en Langflow. Este README describe lo que el código intenta hacer; no valida de forma independiente el identificador CVE, las versiones afectadas, el comportamiento del endpoint, los avisos del proveedor ni la efectividad del script.

Comportamiento general

El programa está estructurado como una herramienta de automatización de línea de comandos que intenta enviar datos JSON especialmente construidos a un endpoint HTTP de Langflow. Su premisa prevista es que el Python controlado por el usuario incrustado en una definición de flujo será procesado por la aplicación remota.

Si esa premisa se cumple en un objetivo, el script está diseñado para convertirlo en ejecución arbitraria de comandos del sistema operativo. Más allá de una verificación básica de ejecución, contiene rutinas destinadas a establecer persistencia, crear una sesión remota interactiva, ejecutar comandos de reconocimiento y generar un par de claves SSH localmente.

Debido a que estas capacidades podrían comprometer sistemas sin autorización, el código debe tratarse como una herramienta potencialmente maliciosa o de doble uso. No debe ejecutarse contra sistemas a menos que la actividad esté explícitamente autorizada y regida por un alcance de prueba definido.

Componentes principales

Importaciones y comportamiento TLS

El programa importa módulos estándar de Python para análisis de argumentos, manejo de JSON, solicitudes HTTP, sockets, hilos, ejecución de subprocesos y acceso a archivos.

Desactiva la verificación normal de certificados TLS a nivel global mediante ssl._create_unverified_context. Esto hace que las solicitudes HTTPS acepten certificados inválidos o no confiables. Aunque a veces se ve en código de prueba, esto es inseguro en producción porque debilita la protección contra la interceptación y la suplantación de identidad.

Clases Colors y Logger

Colors define secuencias de escape ANSI de terminal utilizadas para imprimir salida con colores.

Logger es una pequeña clase de utilidad que imprime mensajes informativos, de éxito, advertencia y error. Su método banner() muestra el título del script, la vulnerabilidad reclamada, el rango de productos afectados reclamado, la severidad y el estado CISA KEV. Estas afirmaciones son texto de presentación en el programa y no son prueba de que las afirmaciones sean precisas.

Clase CVE202633017Exploit

Esta es la clase principal. Cuando se inicializa, esta:

  • Almacena la URL objetivo suministrada y elimina una barra diagonal final.
  • Agrega un prefijo http:// si falta.
  • Establece un identificador de flujo predeterminado.
  • Construye una ruta de solicitud para un endpoint público de construcción de flujos.
  • Utiliza un tiempo de espera HTTP de 30 segundos.

El ID de flujo predeterminado es un valor fijo similar a un UUID. El programa permite sobrescribirlo mediante una opción de línea de comandos.

Construcción del payload

_build_malicious_payload(command) crea un objeto JSON que se asemeja a un grafo de flujo con un nodo. El nodo está marcado como un CustomComponent e incluye código fuente de Python en un campo code.

El código fuente insertado intenta invocar un comando del sistema operativo. Primero intenta una API de Python y recurre a una llamada de subproceso si ocurre un error. La estructura JSON luego se devuelve al código de envío de solicitudes.

Esta es la lógica central del exploit: asume que el servicio receptor ejecutará el código enviado mientras procesa el grafo.

Rutina de solicitud HTTP

_send_exploit_request(payload_data) serializa el payload como JSON y realiza una solicitud HTTP POST al endpoint construido. Incluye cabeceras convencionales similares a las de un navegador y devuelve tanto el texto del cuerpo de la respuesta como el estado HTTP.

Los errores HTTP se capturan y se devuelven en lugar de terminar el programa. Otras excepciones, como fallos de conexión o tiempos de espera, se convierten en cadenas y se devuelven con estado 0.

Verificación de vulnerabilidad

check_vulnerability() envía un payload que contiene un comando marcador y luego trata tanto una respuesta HTTP exitosa como cualquier respuesta que contenga la palabra error como evidencia de que el objetivo "parece vulnerable".

Este no es un método de verificación confiable. Una respuesta 200, una respuesta 500 o un error de aplicación pueden ocurrir por muchas razones no relacionadas con la ejecución de código. El script no observa de forma independiente la salida del marcador, por lo que puede producir falsos positivos.

Ejecución de un solo comando

execute_command(command) envuelve el comando suministrado en el payload de flujo malicioso y lo envía. Interpreta HTTP 200 o 500 como un posible resultado exitoso.

Nuevamente, los códigos de estado por sí solos no demuestran ejecución remota de comandos. Desde una perspectiva de revisión de código defensiva, este método intenta hacer que la herramienta sea flexible al permitir que un operador suministre comandos arbitrarios del sistema operativo.

Rutina de persistencia de clave SSH

_build_ssh_payload() e inject_ssh_key() están diseñados para modificar la configuración SSH remota y los archivos de claves autorizadas. Las acciones intentadas incluyen crear directorios SSH, agregar una clave pública SSH, cambiar permisos, modificar la configuración del demonio SSH, reiniciar el servicio SSH, crear un mecanismo de persistencia basado en cron y eliminar artefactos del historial del shell.

Estos son comportamientos de persistencia y evasión de defensas, no una verificación benigna de vulnerabilidad. El programa puede afirmar éxito simplemente basándose en un estado HTTP, sin confirmar que algún archivo o servicio fue realmente modificado.

Rutina de shell inversa

_build_reverse_shell_payload() ensambla múltiples mecanismos de respaldo destinados a hacer que el objetivo inicie una conexión de red saliente hacia un host y puerto controlados por el operador.

spawn_reverse_shell() inicia un listener TCP local en un hilo en segundo plano, espera brevemente, envía el payload remoto y luego espera una conexión.

_start_listener() acepta una conexión y proporciona un bucle de comandos interactivo simple. Esta es una capacidad de acceso remoto. Tiene manejo de errores limitado, no autentica la conexión entrante y no es adecuado para administración segura ni infraestructura de pruebas legítima.

Rutina de cadena completa

full_exploit_chain() combina múltiples comportamientos:

  • Intenta la verificación débil de vulnerabilidad.
  • Envía comandos de reconocimiento del sistema operativo.
  • Opcionalmente intenta la persistencia de clave SSH.
  • Opcionalmente inicia el flujo de trabajo de shell inversa.

La lista de reconocimiento está destinada a revelar identidad, privilegios, información del sistema operativo, archivos, procesos, servicios en escucha, cuentas y tareas programadas. Esto es característico de la enumeración posterior al compromiso.

Generación local de claves SSH

generate_ssh_key_pair(key_path) invoca el programa local ssh-keygen para crear un par de claves RSA de 4096 bits si los archivos solicitados no existen ya.

Crea un comentario de clave que hace referencia al CVE reclamado y está destinado a respaldar la función de persistencia SSH. Esto afecta a la máquina en la que se ejecuta el propio script, no al objetivo remoto.

Interfaz de línea de comandos

main() define opciones de línea de comandos para selección de objetivo, un ID de flujo, ejecución de un solo comando, manejo de claves SSH, configuración de shell inversa, ejecución de cadena completa, generación automática de claves y salida detallada.

El código realiza solo una validación limitada. Por ejemplo, los modos de shell inversa y cadena completa requieren un host y puerto locales. No valida autorización, alcance, propiedad del objetivo, seguridad de la URL ni si el objetivo es realmente una instancia de Langflow.

Problemas de confiabilidad y calidad del código

  • La verificación de vulnerabilidad no prueba la ejecución de código y puede etiquetar erróneamente un objetivo como vulnerable.
  • El script desactiva la verificación de certificados, exponiendo sus propias solicitudes a la interceptación.
  • Trata los errores del servidor como posible éxito, lo que hace que los resultados sean ambiguos.
  • Varios módulos y variables importados no se utilizan o solo se usan parcialmente.
  • La variable encoded_key se calcula pero nunca se usa.
  • La lógica de persistencia SSH asume rutas, administradores de servicios, permisos y diseños de configuración que pueden no existir.
  • La construcción de comandos y las comillas son frágiles y pueden fallar con caracteres especiales.
  • El listener de shell inversa es simplista, carece de autenticación y no es confiable para E/S interactiva.
  • El flujo de trabajo de cadena completa envía acciones potencialmente destructivas o altamente intrusivas sin confirmación sólida ni reversión.
  • El script no contiene registro de auditoría, aplicación de alcance, limitación de velocidad ni salvaguardas apropiadas para una herramienta de pruebas autorizada.

Relevancia defensiva

Los equipos de seguridad que revisen este código deben tratar lo siguiente como indicadores de intento de explotación o actividad posterior al compromiso:

  • Actividad HTTP POST dirigida a un endpoint público de construcción de flujos.
  • Definiciones de flujo que contienen código fuente inesperado de componentes personalizados.
  • Procesos secundarios lanzados por la cuenta de servicio de Langflow.
  • Modificaciones inesperadas en archivos de claves autorizadas SSH, configuración del demonio SSH, entradas cron o archivos de historial del shell.
  • Conexiones TCP salientes inusuales originadas desde el host de Langflow.
  • Ejecución de comandos de descubrimiento del sistema por parte del proceso o la cuenta de servicio de Langflow.

Para decisiones de remediación, confíe en los avisos de seguridad oficiales de Langflow, las notas de versión y el proceso de gestión de vulnerabilidades de su organización en lugar de las declaraciones de versión y severidad incrustadas en este script.

Manejo responsable

No ejecute ni redistribuya este programa como herramienta de implementación o acceso. Si se encontró en un sistema, consérvelo como evidencia, registre hashes y marcas de tiempo, restrinja el acceso a la copia, inspeccione los registros de servicios y redes relevantes y siga el proceso de respuesta a incidentes de la organización.

Para una evaluación autorizada legítima, utilice un alcance por escrito, un plan de validación no destructivo, una condición de detención documentada y un informe centrado en la remediación. Evite la persistencia, las shells inversas, los cambios de credenciales, la eliminación de historial o cualquier acción que pueda interrumpir sistemas o dejar acceso no autorizado.

Descargar herramienta