Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-38828 — Prova de Conceito e correção para CVE-2024-38828: DoS no Spring Framework via manipulação do Content-Length no ByteArrayHttpMessageConverter. Inclui teste de carga, métricas e um conversor seguro personalizado. | Kitploit
Ferramentas/GitHubGitHub/funcid/cve-2024-38828
Análise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança WebAprendizado e Educação
GitHubfuncid/cve-2024-38828

CVE-2024-38828

Prova de Conceito e correção para CVE-2024-38828: DoS no Spring Framework via manipulação do Content-Length no ByteArrayHttpMessageConverter. Inclui teste de carga, métricas e um conversor seguro personalizado.

Ver Repositório
há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Vulnerabilidade CVE-2024-38828

Descrição

O teste verifica o comportamento/resposta no Spring Framework com a vulnerabilidade CVE-2024-38828 e sem ela. No ByteArrayHttpMessageConverter, a memória é alocada em ByteArrayOutputStream com base no cabeçalho da requisição Content-Length, o que pode não corresponder à realidade com o corpo de 0 bytes. Com um aumento repentino dessas requisições (DoS), a memória é usada de forma ineficiente, ocorrem limpezas regulares de GC e a aplicação começa a lagar. Vou mostrar como implementar/corrigir e as métricas.

Gráficos de métricas

Descrição da vulnerabilidade

CVE-2024-38828 é uma vulnerabilidade do tipo Denial of Service (DoS) no Spring Framework que permite a um atacante causar esgotamento de memória no servidor através de um controlador Spring MVC com parâmetro do tipo byte[].

Detalhes técnicos

  • Versões vulneráveis: Spring Framework 5.3.x (todas as versões)
  • Tipo de vulnerabilidade: Denial of Service (DoS)
  • Vetor de ataque: Requisições HTTP POST com Content-Length = 2 ^ 31 - 1
  • Impacto: Esgotamento da memória do servidor, levando à negação de serviço

Solução

Correção implementada

  1. Criado um HttpMessageConverter personalizado para processar arrays de bytes
  2. Implementada verificação do tamanho dos dados recebidos
  3. Utilizada abordagem de fluxo para processar grandes payloads

Testes

Estrutura do projeto

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 do teste

  • Número de requisições: 6000
  • Número máximo de requisições simultâneas: 5
  • Atraso entre grupos de requisições: 0.1 segundos
  • Tamanho da requisição: 1 byte
  • Cabeçalho Content-Length: 2^31 - 1 (valor máximo para int)

Código do teste

root@kitploit:~
def send_request(url):
    try:
        response = requests.post(
            url,
            data=b'0',  # Минимальный payload
            headers={
                'Content-Type': 'application/octet-stream',
                'Content-Length': str(2**31 - 1)  # Максимальный размер
            }
        )
        return response.status_code, response.text
    except Exception as e:
        return f"Ошибка: {str(e)}", None

Execução dos testes

  1. Instale as dependências Python:
root@kitploit:~
pip install -r requirements.txt
  1. Execute o teste:
root@kitploit:~
python tests/load_test.py
Baixar ferramenta