Phát hiện lỗ hổng bảo mật nghiêm trọng trong Mongoose

phan linh
phan linh 15:08, 06/05/2025
Theo dõi

Phùng Siêu Đạt, một trong số thực tập sinh xuất sắc tại OPSWAT, đã lựa chọn phân tích Mongoose do mức độ phổ biến rộng rãi của nó trong các hệ thống thư viện kỹ thuật phần mềm.

2402--cac-thuc-tap-sinh-tai-opswat-viet-nam-1433
Các thực tập sinh tại OPSWAT Việt Nam

Phát hiện CVE-2024-53900

Ngày 7/11/2024, trong quá trình phân tích chuyên sâu thư viện này, Đạt đã phát hiện một lỗ hổng nghiêm trọng trong Mongoose. 

Lỗ hổng này cho phép kẻ tấn công khai thác giá trị $where, có thể dẫn đến Thực thi Mã Từ xa (Remote Code Execution - RCE) trên máy chủ ứng dụng Node.js.

Sau khi phát hiện ra vấn đề, Đạt đã báo cáo ngay cho nhóm phát triển Mongoose. Ngày 26/11, một bản vá đã được phát hành trong phiên bản 8.8.3, và lỗ hổng này được công bố trên Cơ sở dữ liệu Lỗ hổng bảo mật Quốc gia của Hoa Kỳ (NVD) với mã định danh CVE-2024-53900.

Phát hiện CVE-2025-23061

Tuy nhiên, khi phân tích bản vá 8.8.3, Đạt tiếp tục phát hiện lỗ hổng này chưa được xử lý triệt để. Tin tặc có thể sử dụng một phương pháp khác để vượt qua bản vá và tấn công máy chủ ứng dụng web, từ đó đánh cắp dữ liệu hoặc kiểm soát ứng dụng. Một báo cáo bảo mật chi tiết được gửi đến Tidelift.

Ngày 13/1/2025, Mongoose phát hành phiên bản 8.9.5, giới thiệu một bản vá nâng cao nhằm khắc phục triệt để lỗ hổng. Ngày 15/1/2025, CVE-2025-23061 được công bố trên NVD, nhấn mạnh mức độ nghiêm trọng của lỗ hổng mới được phát hiện.

Các lập trình viên cần làm gì?

Bước 1: Cập nhật bản vá ngay lập tức

Mongoose đã cam kết khắc phục cả hai lỗi trên trong các phiên bản mới nhất. Nếu bạn đang sử dụng Mongoose, hãy cập nhật ngay lập tức lên phiên bản mới nhất.

Bước 2: Kiểm tra các công cụ

Các lập trình viên nên kiểm tra Danh sách thành phần phần mềm (SBOM - Software Bill of Materials) của họ - tức là danh sách tất cả các công cụ và mã nguồn đang được sử dụng - để đảm bảo không có lỗi bảo mật nào khác.

Bước 3: Bảo vệ dữ liệu của bạn

Tin tặc có thể lợi dụng những lỗ hổng này để xâm phạm dữ liệu của bạn. Chỉ vì dữ liệu của bạn an toàn tại thời điểm lưu trữ không có nghĩa là nó luôn được bảo vệ. Hãy quét cơ sở dữ liệu thường xuyên để phát hiện những thay đổi bất thường hoặc lỗ hổng bảo mật.

Mongoose là một thư viện giúp quản lý dữ liệu trong MongoDB dễ dàng hơn khi làm việc với ứng dụng Node.js. Nó hoạt động như một lớp trung gian, cho phép chuyển đổi các đối tượng JavaScript thành tài liệu MongoDB theo một cấu trúc có sẵn (schema). Nhờ đó, dữ liệu được tổ chức rõ ràng hơn, dễ kiểm soát và xác thực.

Mongoose cũng cung cấp nhiều tính năng như middleware (cho phép chạy các đoạn code trước hoặc sau khi xử lý dữ liệu) và hệ thống truy vấn linh hoạt, giúp lập trình viên làm việc với MongoDB hiệu quả hơn.