@fastify/multipart — это анализатор составных данных формы для Fastify. В версиях от 5.3.0 до 10.1.1 (но не включая), когда ограничение busboy fileSize усекает часть файла, плагин очищает свою внутреннюю ссылку на текущий файл, в то время как базовый поток все еще открыт. Если затем клиент прерывает соединение до отправки завершающей границы, очистка прерывания не находит потока для уничтожения, поэтому метод saveRequestFiles() никогда не завершается, обработчик запроса зависает, а временный файл, уже записанный на диск, никогда не очищается.
Неаутентифицированный клиент может повторить это, чтобы привести к постоянной утечке временных файлов и приостановке выполнения обработчиков, что приведет к исчерпанию диска и цикла событий. Проблема исправлена в @fastify/multipart 10.1.1. Пользователям следует обновиться до 10.1.1.
Показать оригинальное описание (EN)
@fastify/multipart is a multipart form-data parser for Fastify. In versions from 5.3.0 up to but not including 10.1.1, when the busboy fileSize limit truncates a file part, the plugin clears its internal current-file reference while the underlying stream is still open. If the client then aborts the connection before sending the terminating boundary, the abort cleanup finds no stream to destroy, so saveRequestFiles() never settles, the request handler hangs, and the temporary file already written to disk is never cleaned up. An unauthenticated client can repeat this to permanently leak temporary files and suspended handler executions, leading to disk and event-loop exhaustion. The issue is fixed in @fastify/multipart 10.1.1. Users should upgrade to 10.1.1.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Fastify Fastify-Multipart
cpe:2.3:a:fastify:fastify-multipart:*:*:*:*:*:fastify:*:*
|
5.3.0
|
10.1.1
|