Lỗ hổng CVE Nghiêm Trọng: Happy DOM Dễ Bị RCE Khai Thác

Một lỗ hổng CVE nghiêm trọng đã được phát hiện trong Happy DOM, thư viện JavaScript phổ biến được sử dụng cho các khuôn khổ kết xuất phía máy chủ (server-side rendering) và kiểm thử.
Lỗ hổng này, được theo dõi dưới mã định danh CVE-2025-61927, cho phép kẻ tấn công thoát khỏi ngữ cảnh máy ảo (VM context) và thực thi mã tùy ý (arbitrary code) trên các hệ thống bị ảnh hưởng.
Tiềm ẩn nguy cơ thỏa hiệp hàng triệu ứng dụng trên toàn thế giới, đây là một mối đe dọa đáng kể đối với an ninh mạng.
Phân tích Lỗ hổng CVE và Cơ chế Khai thác
Các phiên bản Happy DOM 19 và thấp hơn chứa một điểm yếu bảo mật nghiêm trọng. Điểm yếu này cho phép mã JavaScript độc hại thoát ra khỏi môi trường sandbox được thiết kế.
Lỗ hổng CVE này bắt nguồn từ sự cách ly không đúng đắn của ngữ cảnh Node.js VM. Môi trường này được thiết kế để cung cấp một không gian thực thi an toàn cho mã không đáng tin cậy.
Nhà nghiên cứu bảo mật Mas0nShi đã khám phá ra rằng kẻ tấn công có thể khai thác chuỗi kế thừa constructor từ lớp Function để giành quyền truy cập vào các chức năng cấp tiến trình.
Kỹ thuật tấn công bao gồm việc đi ngược chuỗi constructor để tiếp cận global Function constructor. Khi đó, kẻ tấn công có thể đánh giá các chuỗi mã ở cấp tiến trình thay vì trong ngữ cảnh VM cô lập.
Cơ chế thoát này hoạt động khác nhau tùy thuộc vào việc hệ thống mục tiêu sử dụng CommonJS hay các module ECMAScript.
Môi trường CommonJS đặc biệt dễ bị tổn thương, vì kẻ tấn công có thể truy cập hàm require() để nhập các module bổ sung. Điều này dẫn đến khả năng remote code execution toàn diện.
Mức độ Ảnh hưởng và Rủi ro của Lỗ hổng CVE
Lỗ hổng CVE này ước tính ảnh hưởng đến khoảng 2.7 triệu người dùng đang dựa vào Happy DOM cho các ứng dụng kết xuất phía máy chủ và các khuôn khổ kiểm thử.
Các ứng dụng có rủi ro cao nhất là những ứng dụng xử lý nội dung HTML do người dùng kiểm soát thông qua Happy DOM. Đặc biệt là trong các kịch bản kết xuất phía máy chủ, nơi nội dung không đáng tin cậy được hiển thị động.
Lỗ hổng bảo mật này cũng gây ra rủi ro đáng kể cho các môi trường kiểm thử thực thi mã JavaScript không đáng tin cậy trong ngữ cảnh Happy DOM.
Khai thác thành công cho phép kẻ tấn công thực hiện nhiều hành vi độc hại:
- Trích xuất dữ liệu: Bằng cách truy cập các biến môi trường và tệp cấu hình.
- Di chuyển ngang: Thông qua các kết nối mạng nội bộ.
- Thực thi lệnh tùy ý: Qua các tiến trình con.
- Thiết lập duy trì quyền truy cập: Thông qua quyền truy cập hệ thống tệp.
Lỗ hổng CVE này nhận được điểm CVSS v4 tối đa là 10.0. Điều này cho thấy mức độ nghiêm trọng cực kỳ cao với tác động lớn đến tính bảo mật (confidentiality), toàn vẹn (integrity) và khả dụng (availability) của hệ thống.
Biện pháp Khắc phục và Cập nhật Bản vá Khẩn cấp
Đơn vị bảo trì Happy DOM, Ortner IT Solutions AB, đã phát hành phiên bản 20 để xử lý lỗ hổng CVE này.
Bản cập nhật đã triển khai tính năng vô hiệu hóa đánh giá JavaScript theo mặc định và bổ sung các cảnh báo bảo mật cho các cấu hình tiềm ẩn không an toàn.
Các tổ chức đang sử dụng các phiên bản Happy DOM bị ảnh hưởng cần khẩn cấp cập nhật bản vá lên Happy DOM v20 hoặc phiên bản mới hơn để loại bỏ lỗ hổng.
Đối với các môi trường yêu cầu đánh giá JavaScript, quản trị viên nên triển khai cờ --disallow-code-generation-from-strings của Node.js. Cờ này giúp ngăn chặn đánh giá mã ở cấp tiến trình, tăng cường bảo mật cho hệ thống.
node --disallow-code-generation-from-strings your_application.js
Người dùng không thể nâng cấp ngay lập tức cần vô hiệu hóa đánh giá JavaScript trong Happy DOM. Trừ khi nội dung được thực thi hoàn toàn đáng tin cậy và đã được kiểm duyệt kỹ lưỡng.
Phiên bản đã được vá bao gồm các biện pháp bảo mật nâng cao và cảnh báo người dùng về các rủi ro tiềm ẩn khi đánh giá JavaScript được bật trong môi trường không an toàn. Điều này cung cấp sự bảo vệ tốt hơn chống lại các cuộc tấn công thoát VM tương tự và các lỗ hổng CVE chưa được biết đến.
Để biết thêm chi tiết kỹ thuật về CVE-2025-61927, bạn có thể tham khảo NIST National Vulnerability Database.









