Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-38828 — PoC e fix per CVE-2024-38828: DoS del framework Spring tramite manipolazione di Content-Length in ByteArrayHttpMessageConverter. Include test di carico, metriche e un convertitore sicuro personalizzato. | Kitploit
Strumenti/GitHubGitHub/funcid/cve-2024-38828
Analisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza WebApprendimento e Formazione
GitHubfuncid/cve-2024-38828

CVE-2024-38828

PoC e fix per CVE-2024-38828: DoS del framework Spring tramite manipolazione di Content-Length in ByteArrayHttpMessageConverter. Include test di carico, metriche e un convertitore sicuro personalizzato.

Vedi Repository
1 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Vulnerabilità CVE-2024-38828

Descrizione

Il test verifica il comportamento/la reazione in Spring Framework con la vulnerabilità CVE-2024-38828 e senza. In ByteArrayHttpMessageConverter viene allocata memoria in ByteArrayOutputStream in base all'header della richiesta Content-Length, che potrebbe non corrispondere alla realtà con un corpo di 0 byte. Con un aumento improvviso di tali richieste (DoS), la memoria viene utilizzata in modo non ottimale, compaiono regolari pulizie del GC e l'applicazione inizia a rallentare. Mostrerò come implementarlo/correggerlo e le metriche.

Grafici delle metriche

Descrizione della vulnerabilità

CVE-2024-38828 è una vulnerabilità di tipo Denial of Service (DoS) in Spring Framework che consente a un attaccante di causare l'esaurimento della memoria sul server attraverso un controller Spring MVC con un parametro di tipo byte[].

Dettagli tecnici

  • Versioni vulnerabili: Spring Framework 5.3.x (tutte le versioni)
  • Tipo di vulnerabilità: Denial of Service (DoS)
  • Vettore di attacco: Richieste HTTP POST con Content-Length = 2^31 - 1
  • Impatto: Esaurimento della memoria del server, che porta a denial of service

Soluzione

Fix implementato

  1. Creato un HttpMessageConverter personalizzato per gestire array di byte
  2. Implementato il controllo della dimensione dei dati in ingresso
  3. Utilizzato un approccio a flusso per gestire grandi payload

Test

Struttura del progetto

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

Parametri del test

  • Numero di richieste: 6000
  • Numero massimo di richieste simultanee: 5
  • Ritardo tra gruppi di richieste: 0.1 secondi
  • Dimensione della richiesta: 1 byte
  • Intestazione Content-Length: 2^31 - 1 (valore massimo per int)

Codice del test

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

Esecuzione dei test

  1. Installa le dipendenze Python:
root@kitploit:~
pip install -r requirements.txt
  1. Esegui il test:
root@kitploit:~
python tests/load_test.py
Scarica lo strumento