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-2024-38828 — PoC y corrección para CVE-2024-38828: DoS en Spring Framework mediante manipulación de Content-Length en ByteArrayHttpMessageConverter. Incluye pruebas de carga, métricas y un convertidor seguro personalizado. | Kitploit
Herramientas/GitHubGitHub/funcid/cve-2024-38828
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad WebAprendizaje y Educación
GitHubfuncid/cve-2024-38828

CVE-2024-38828

PoC y corrección para CVE-2024-38828: DoS en Spring Framework mediante manipulación de Content-Length en ByteArrayHttpMessageConverter. Incluye pruebas de carga, métricas y un convertidor seguro personalizado.

Ver Repositorio
2hace 1 añoAú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

Vulnerabilidad CVE-2024-38828

Descripción

La prueba verifica el comportamiento/reacción del Spring Framework con y sin la vulnerabilidad CVE-2024-38828. En ByteArrayHttpMessageConverter se asigna memoria en ByteArrayOutputStream según el encabezado de solicitud Content-Length lo que puede no coincidir con la realidad si el cuerpo tiene 0 bytes. Ante un aumento repentino de dichas solicitudes (DoS), la memoria se utiliza de manera subóptima, aparecen limpiezas regulares del GC y la aplicación comienza a retrasarse. Mostraré cómo implementarlo/corregirlo y las métricas.

Gráficos de métricas

Descripción de la vulnerabilidad

CVE-2024-38828 es una vulnerabilidad de tipo Denial of Service (DoS) en Spring Framework que permite a un atacante provocar el agotamiento de la memoria del servidor a través de un controlador Spring MVC con un parámetro de tipo byte[].

Detalles técnicos

  • Versiones vulnerables: Spring Framework 5.3.x (todas las versiones)
  • Tipo de vulnerabilidad: Denial of Service (DoS)
  • Vector de ataque: Solicitudes HTTP POST con Content-Length = 2 ^ 31 - 1
  • Impacto: Agotamiento de la memoria del servidor, lo que lleva a denegación de servicio

Solución

Corrección implementada

  1. Se creó un HttpMessageConverter personalizado para manejar arreglos de bytes
  2. Se implementó una verificación del tamaño de los datos entrantes
  3. Se utilizó un enfoque de streaming para manejar payloads grandes

Pruebas

Estructura del proyecto

root@kitploit:~
.
├── src/
│   └── main/
│       └── java/
│           └── me/
│               └── func/
│                   └── demo/
│                       ├── config/
│                       │   └── WebConfig.java
│                       ├── converter/
│                       │   └── SafeByteArrayHttpMessageConverter.java
│                       ├── controller/
│                       │   └── DemoController.java
│                       └── DemoApplication.java
├── tests/
│   ├── load_test.py
│   └── results/
│       ├── результаты_теста.png
│       └── метрики.json
└── README.md

Parámetros de la prueba

  • Número de solicitudes: 6000
  • Número máximo de solicitudes concurrentes: 5
  • Retardo entre grupos de solicitudes: 0.1 segundos
  • Tamaño de la solicitud: 1 byte
  • Encabezado Content-Length: 2^31 - 1 (valor máximo para int)

Código de la prueba

root@kitploit:~
def send_request(url):
    try:
        response = requests.post(
            url,
            data=b'0',  # Minimo payload
            headers={
                'Content-Type': 'application/octet-stream',
                'Content-Length': str(2**31 - 1)  # Maximo tamano
            }
        )
        return response.status_code, response.text
    except Exception as e:
        return f"Error: {str(e)}", None

Ejecución de las pruebas

  1. Instale las dependencias de Python:
root@kitploit:~
pip install -r requirements.txt
  1. Ejecute la prueba:
root@kitploit:~
python tests/load_test.py
Descargar herramienta