Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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-2025-5548 — Desbordamiento de búfer en FreeFloat FTP Server 1.0 que ilustra cómo un único manejador inseguro puede generar múltiples entradas CVE en diferentes comandos. | Kitploit
Herramientas/GitHubGitHub/themalwareguardian/cve-2025-5548
Análisis de VulnerabilidadesExplotaciónIngeniería InversaShellcodeDepuradoresFuzzingPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsExplotación de Binarios
GitHubthemalwareguardian/cve-2025-5548

CVE-2025-5548

Desbordamiento de búfer en FreeFloat FTP Server 1.0 que ilustra cómo un único manejador inseguro puede generar múltiples entradas CVE en diferentes comandos.

Ver Repositorio
115hace 6 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-2025-5548: FreeFloat FTP Server 1.0 - Desbordamiento de búfer basado en pila

Desbordamiento de búfer en FreeFloat FTP Server 1.0 que ilustra cómo un único manejador inseguro puede generar múltiples entradas CVE en diferentes comandos.




📑 Tabla de contenidos

  • Por qué existe este repositorio
  • Por qué esta vulnerabilidad es interesante
  • Mismo error, múltiples CVEs
  • Acerca de la vulnerabilidad
  • Provocando el fallo
  • Explotación



🎓 Por qué existe este repositorio

Este repositorio es parte del material que utilizo cuando enseño explotación de corrupción de memoria (además de mi trabajo habitual, también imparto clases en diferentes cursos de ciberseguridad donde ayudo a formar a la próxima generación de ingenieros inversos).

CVE-2025-5548 es un caso que utilizo cuando quiero mostrar a los estudiantes que la investigación de vulnerabilidades es una habilidad accesible, no algo reservado para investigadores senior con años de experiencia. FreeFloat FTP Server 1.0 es una pequeña aplicación legacy de Windows, fácil de configurar, fácil de ejecutar y fácil de hacer fallar. El desbordamiento se desencadena a través de un comando FTP estándar, la ruta de explotación es una sobrescritura limpia de EIP vanilla, y todo el proceso, desde el fuzzing hasta la shell funcional, se puede completar en una sola sesión.

Este caso también está directamente relacionado con mi charla "The Path That Leads to Your First CVE", donde explico que uno de los puntos de entrada más realistas para la investigación de vulnerabilidades para principiantes es analizar software antiguo, entender cómo funciona internamente y buscar el tipo de comprobaciones de longitud faltantes que producen exactamente esta clase de vulnerabilidad. FreeFloat es uno de los ejemplos que uso para demostrar que encontrar y documentar un error real no requiere años de experiencia, requiere curiosidad, un depurador y un enfoque metódico.

Lo que hace que este caso sea particularmente efectivo para la enseñanza es cómo se conecta con una lección más amplia sobre cómo se asignan los CVEs. El mismo manejador de entrada inseguro en FreeFloat produce desbordamientos en múltiples comandos FTP diferentes, USER, PASS, NOOP y otros, cada uno de los cuales fue reportado de forma independiente y recibió su propia entrada CVE. Los estudiantes que miran la lista de CVEs para este binario y ven docenas de entradas aprenden rápidamente que el recuento de CVEs no es lo mismo que el recuento de vulnerabilidades, y que comprender la causa raíz es más valioso que catalogar los síntomas.

Una vez que los estudiantes entienden el proceso a través de casos como este, les doy un ejemplo real de lo que viene después. Después de dos semanas practicando desbordamientos de búfer y corrupción de memoria, el tipo de vulnerabilidad que son capaces de encontrar ya existe en software real. El siguiente repositorio documenta una vulnerabilidad que encontré específicamente para mostrar a los estudiantes el ciclo completo: descubrimiento, análisis, documentación y solicitud de CVE, en algo lo suficientemente accesible como para encontrarlo al principio del camino de aprendizaje, como CVE-2025-70330.

Este repositorio es parte de una colección más grande. Si quieres practicar explotación en una amplia gama de técnicas, tipos de vulnerabilidades y arquitecturas de destino, echa un vistazo al repositorio Binary-Exploitation, donde todo este material está organizado y mantenido junto con muchos más CVEs, metodologías y ejercicios de explotación.




💡 Por qué esta vulnerabilidad es interesante

Esta vulnerabilidad afecta a FreeFloat FTP Server 1.0, un servidor FTP de Windows muy antiguo que fue escrito sin prácticas de seguridad modernas. En 2025, un investigador reportó muchos CVEs que afectan a este mismo binario.

Ejemplos incluyen:

  • CVE-2025-5667
  • CVE-2025-5548
  • CVE-2025-5220
  • CVE-2025-5075
  • y muchos otros

Cada CVE se refiere a un comando FTP diferente, pero cuando se invierte el programa, queda claro que muchos de ellos alcanzan la misma ruta de código vulnerable.

Esto hace que el caso sea interesante no solo como ejemplo de desbordamiento de búfer, sino también como demostración de que:

  • Diferentes entradas pueden desencadenar el mismo error.
  • El software legacy puede contener múltiples manejadores inseguros.
  • Las entradas CVE no siempre representan vulnerabilidades completamente diferentes.



🔍 Mismo error, múltiples CVEs

Al invertir el binario, se puede observar que todos los comandos FTP son procesados por la misma función despachadora. La cadena de comando se almacena dentro de una estructura de sesión, y varios manejadores de comandos copian la entrada del usuario en búferes de tamaño fijo utilizando funciones inseguras como strcpy, strcat y memcpy, sin verificar la longitud de los datos recibidos.

Debido a esto, diferentes comandos pueden sobrescribir la pila incluso si la descripción del CVE menciona solo un comando específico.

Por ejemplo, el fallo se puede desencadenar usando:

NOOP AAAAA...
USER AAAAA...
PASS AAAAA...
HOST AAAAA...
ANYTHING AAAAA...

La única diferencia es la cantidad de bytes necesarios para sobrescribir la dirección de retorno. Esto significa que muchos CVEs reportados para este software comparten la misma causa raíz.




⚠️ Acerca de la vulnerabilidad

FreeFloat FTP Server procesa los comandos recibidos a través del puerto TCP 21 y almacena la cadena de comando dentro de una estructura de sesión interna. Posteriormente, el manejador de comandos copia los datos controlados por el usuario en búferes de pila locales sin realizar una validación de longitud adecuada.

Al invertir el binario, se puede observar que varios manejadores de comandos utilizan búferes de tamaño fijo y operaciones de copia inseguras. Una versión simplificada de la lógica vulnerable se ve así:

char buffer[256];

strcpy(buffer, user_input);

Dado que el búfer de destino tiene un tamaño fijo y la longitud de la entrada no se verifica, el envío de una cadena larga provoca que la operación de copia escriba más allá del final del búfer.

A medida que se escriben más datos, el diseño de la pila se corrompe hasta que se sobrescribe la dirección de retorno guardada.

Cuando la función retorna, la ejecución salta a un valor controlado por el usuario, lo que resulta en un fallo. Bajo un depurador, esto se puede ver como el puntero de instrucción siendo sobrescrito con datos controlados por el atacante.




💥 Provocando el fallo

El fallo se puede reproducir enviando una cadena larga después de un comando FTP válido. Ejemplo usando Python:

import socket

ip = "127.0.0.1"
port = 21

payload = b"A" * 500

s = socket.socket()
s.connect((ip, port))
Descargar herramienta