
Multer – tmiddleware phổ biến trong hệ sinh thái Node.js, chuyên xử lý dữ liệu định dạng multipart/form-data (đặc biệt là upload tệp tin) gần đây được phát hiện hai lỗ hổng nghiêm trọng có thể dẫn đến từ chối dịch vụ (DoS). Với hơn 26,3 triệu lượt tải mỗi tháng, Multer là lựa chọn mặc định của rất nhiều dự án web, API và hệ thống backend.
CVE-2025-47944 (CVSS 7.5) ảnh hưởng đến các phiên bản Multer từ 1.4.4-Its.1 trở lên. Lỗi này xuất phát từ việc thư viện không xử lý đúng các yêu cầu multipart được định dạng sai. Kẻ tấn công chỉ cần gửi một request upload độc hại là đủ để làm sập toàn bộ tiến trình Node.js – không cần xác thực, không cần quyền truy cập cao. Vấn đề nằm ở chỗ quá trình parse multipart trong Multer ném ra một exception không được xử lý, dẫn đến crash ngay lập tức.
CVE-2025-47935 (CVSS 7.5), lỗ hổng thứ hai, xuất hiện trên tất cả các phiên bản Multer dưới 2.0.0 và liên quan đến cơ chế quản lý luồng dữ liệu (stream) nội bộ. Khi một upload gặp lỗi, Multer không đóng các stream như mong đợi, khiến chúng tiếp tục tồn tại trong bộ nhớ mà không được giải phóng. Qua thời gian, các stream bị “rò rỉ” này tích tụ, dần dần chiếm dụng bộ nhớ và tài nguyên hệ thống như file descriptor. Điều này tạo thành một điểm nghẽn tiềm ẩn, khiến dịch vụ bị đình trệ và chỉ có thể phục hồi thông qua khởi động lại tiến trình.
Những lỗ hổng trên đặc biệt nguy hiểm trong bối cảnh hệ thống có tần suất upload lớn, xử lý tệp tin thường xuyên hoặc thiếu lớp giới hạn upload phù hợp. Các cuộc tấn công DoS lợi dụng lỗ hổng này hoàn toàn có thể thực hiện từ xa, không để lại nhiều dấu vết và rất khó phát hiện nếu không có cơ chế giám sát chủ động.