Thực tập sinh tại OPSWAT Việt Nam phát hiện lỗ hổng bảo mật nghiêm trọng trong Mongoose

14:35, 24/02/2025

Hai lỗ hổng nghiêm trọng trong Mongoose, thư viện dành cho MongoDB có thể giúp tin tặc xâm nhập vào ứng dụng, thực thi mã độc và đánh cắp dữ liệu.

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 mạnh mẽ 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. Nhờ sự tiện lợi và mạnh mẽ, Mongoose đã trở thành một công cụ phổ biến, thu hút hơn 27.000 sao trên GitHub, được nhiều lập trình viên trên toàn thế giới tin dùng.

Phát hiện hai lỗ hổng nghiêm trọng trong Mongoose

Với mục tiêu phát triển nguồn nhân lực chất lượng cao ngành an ninh mạng cho Việt Nam và thế giới, OPSWAT tổ chức chương trình nghiên cứu và thực tập cho sinh viên năm cuối hoặc mới tốt nghiệp tại Việt Nam. Chương trình này mang đến cho sinh viên cơ hội phân tích và giải quyết các lỗ hổng an ninh mạng, và thực hành cùng các chuyên gia bảo mật của OPSWAT để đối phó với các thách thức thực tế như phát hiện mã độc, bảo mật tệp tin và phòng chống tấn công mạng cho cơ sở hạ tầng trọng yếu.

Trong chương trình này, các thực tập sinh có nhiệm vụ nghiên cứu, tái tạo các lỗ hổng bảo mật (CVE) đã biết trên nhiều phần mềm, thư viện và hệ điều hành khác nhau. 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.

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, Phùng Siêu Đạ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/2024, 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.

SBOM giúp minh bạch các thành phần và phụ thuộc bên trong phần mềm, đảm bảo rằng mọi lỗ hổng đều được xác định và xử lý. Trong môi trường phát triển hiện đại, việc sử dụng nhiều công cụ và thư viện của bên thứ ba làm tăng độ phức tạp, khiến vòng đời phát triển phần mềm (SDLC) khó kiểm soát hơn.

Nếu không liên tục giám sát SBOM, các tổ chức có nguy cơ bỏ sót những thành phần lỗi thời hoặc dễ bị tấn công, khiến ứng dụng trở nên kém an toàn. Việc quét SBOM chủ động giúp quản lý lỗ hổng hiệu quả, đảm bảo an ninh luôn là một phần cốt lõi trong quy trình phát triển phần mềm.

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.

Các công cụ như sandboxing và quét tập tin là những phương pháp hiệu quả để phát hiện các hành vi đáng ngờ. OPSWAT cung cấp các giải pháp bảo vệ dữ liệu nhiều lớp như:

Deep CDR™: Làm sạch và tái tạo tệp tin để loại bỏ mọi mối đe dọa tiềm ẩn.

MetaScan™ Multiscanning: Sử dụng hơn 30 công cụ nhận dạng mã độc để phát hiện cả mối đe dọa đã biết và chưa biết.

MetaDefender Sandbox: Phân tích hành vi đáng ngờ của tập tin trong một môi trường an toàn.

Việc quét MongoDB rất quan trọng vì cơ sở dữ liệu thường chứa một lượng lớn thông tin nhạy cảm. Nếu bị khai thác, dữ liệu có thể bị đánh cắp hoặc phá hủy. Kết hợp các công nghệ này giúp bảo vệ toàn diện khỏi những mối đe dọa ẩn giấu.

Xây dựng ứng dụng cũng giống như lắp ráp LEGO - bạn sử dụng nhiều mảnh ghép nhỏ để tạo ra một hệ thống lớn. Nhưng nếu chỉ một mảnh bị lỗi, toàn bộ cấu trúc có thể sụp đổ. Điều này xảy ra khi các lập trình viên sử dụng các công cụ như Mongoose hoặc MongoDB mà không kiểm tra các bản cập nhật hoặc bản vá lỗi. Đây không phải là lỗi của họ, nhưng là một bài học quan trọng về lý do tại sao việc cập nhật công cụ là điều tối quan trọng./.