Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-38828 PoC — CVE-2024-38828: DoS via Spring MVC controller method with byte[] parameter

Source
Associated Vulnerability
Title:CVE-2024-38828: DoS via Spring MVC controller method with byte[] parameter (CVE-2024-38828)
Description:Spring MVC controller methods with an @RequestBody byte[] method parameter are vulnerable to a DoS attack.
Description
This demo application partially covers the vulnerability CVE-2024-38828
Readme
# sprig-mvc-demo-patch
This demo application partially covers the vulnerability CVE-2024-38828

Уязвимость CVE-2024-38828 в Spring Framework позволяет провести атаку типа "Отказ в обслуживании" (DoS), отправляя большой или специально сформированный запрос к контроллеру Spring MVC, который принимает параметр типа byte[]. Это может вызвать перегрузку памяти, процессора и сбой приложения из-за нехватки ресурсов.
В моем демо приложении я использую кастомный конвертор для покрытия уязвимости связанной с загрузкой файлов большого размера.
Для полного покрытия уязвимости необходимо устанавливатьв сервелете таймауты - для защиты от медленных атак и оптимизировать обработку multipart/form-data и raw body-запросов, чтобы не было избыточного выделения памяти.

Уязвимость CVE-2024-38828 устранена в версиях Spring выше 5.3.33.
File Snapshot

[4.0K] /data/pocs/2dc38c22b05b5c3299529c7baec9b7dca29fabb6 ├── [2.4K] pom.xml ├── [1.3K] README.md └── [4.0K] src ├── [4.0K] main │   ├── [4.0K] java │   │   └── [4.0K] com │   │   └── [4.0K] memlastic │   │   ├── [ 397] App.java │   │   ├── [4.0K] config │   │   │   └── [ 861] WebConfig.java │   │   ├── [4.0K] controller │   │   │   └── [ 407] TestController.java │   │   ├── [4.0K] converter │   │   │   └── [1.8K] ByteArrayConverter.java │   │   ├── [4.0K] exception │   │   │   └── [ 206] DataLimitExceededException.java │   │   └── [4.0K] properties │   │   └── [ 463] AppConfig.java │   └── [4.0K] resources │   └── [ 15] application.yml └── [4.0K] test ├── [4.0K] java │   └── [4.0K] com │   └── [4.0K] memlastic │   └── [4.0K] controller │   └── [1.9K] TestControllerTest.java └── [4.0K] resources ├── [ 15] application.yml ├── [1.9M] bigFile.json └── [843K] smallFile.json 17 directories, 13 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →