Một lỗ hổng bảo mật nghiêm trọng đã được công bố trong MongoDB, có thể cho phép người dùng chưa xác thực đọc bộ nhớ heap chưa khởi tạo.
Lỗ hổng này, được theo dõi là CVE-2025-14847 (điểm CVSS: 8.7), được mô tả là trường hợp improper handling of length parameter inconsistency, xảy ra khi một chương trình không xử lý đúng cách các tình huống mà trường độ dài không nhất quán với độ dài thực tế của dữ liệu liên quan.
"Các trường độ dài không khớp trong tiêu đề giao thức nén Zlib có thể cho phép một máy khách chưa xác thực đọc bộ nhớ heap chưa khởi tạo," theo mô tả về lỗ hổng trên CVE.org.
Lỗ hổng này ảnh hưởng đến các phiên bản cơ sở dữ liệu sau:
- MongoDB 8.2.0 through 8.2.3
- MongoDB 8.0.0 through 8.0.16
- MongoDB 7.0.0 through 7.0.26
- MongoDB 6.0.0 through 6.0.26
- MongoDB 5.0.0 through 5.0.31
- MongoDB 4.4.0 through 4.4.29
- All MongoDB Server v4.2 versions
- All MongoDB Server v4.0 versions
- All MongoDB Server v3.6 versions
Vấn đề này đã được khắc phục trong các phiên bản MongoDB 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 và 4.4.30.
"Một exploit phía client của việc triển khai zlib của máy chủ có thể trả về bộ nhớ heap chưa khởi tạo mà không cần xác thực với máy chủ," MongoDB cho biết. "Chúng tôi đặc biệt khuyến nghị nâng cấp lên phiên bản đã được vá càng sớm càng tốt."
Nếu không thể cập nhật ngay lập tức, bạn nên tắt nén zlib trên MongoDB Server bằng cách khởi động mongod hoặc mongos với tùy chọn networkMessageCompressors hoặc net.compression.compressors, trong đó loại bỏ rõ ràng zlib. Các tùy chọn nén khác được MongoDB hỗ trợ là snappy và zstd.
"CVE-2025-14847 cho phép kẻ tấn công từ xa, chưa xác thực kích hoạt một điều kiện trong đó máy chủ MongoDB có thể trả về bộ nhớ chưa khởi tạo từ heap của nó," OP Innovate cho biết. "Điều này có thể dẫn đến việc tiết lộ dữ liệu nhạy cảm trong bộ nhớ, bao gồm thông tin trạng thái nội bộ, con trỏ hoặc các dữ liệu khác có thể hỗ trợ kẻ tấn công trong việc khai thác thêm."