Lỗ hổng CVE nghiêm trọng trong sha.js: Nguy cơ tấn công mạng

Một lỗ hổng CVE nghiêm trọng đã được phát hiện trong gói npm sha.js được sử dụng rộng rãi. Lỗ hổng này đặt hàng triệu ứng dụng vào nguy cơ bị các cuộc tấn công thao túng hash tinh vi, có thể làm tổn hại các hoạt động mật mã và cho phép truy cập trái phép vào các hệ thống nhạy cảm.
Tổng quan về Lỗ hổng CVE trong sha.js
Lỗ hổng CVE-2025-9288 ảnh hưởng đến tất cả các phiên bản của thư viện sha.js lên đến 2.4.11. Thư viện này đã có hơn 14 triệu lượt tải xuống trong hệ sinh thái JavaScript, nhấn mạnh phạm vi ảnh hưởng rộng lớn.
Chi tiết Lỗ hổng CVE và Nguồn gốc
Lỗi bảo mật bắt nguồn từ việc thiếu kiểm tra kiểu dữ liệu đầu vào trong cơ chế tính toán hash của thư viện sha.js. Điều này cho phép kẻ tấn công thao túng trạng thái hash thông qua các đầu vào dạng JSON-stringifiable được tạo ra một cách cẩn thận.
Nhà nghiên cứu bảo mật ChALkeR đã phát hiện ra lỗ hổng này. Theo đó, các tác nhân độc hại có thể khai thác điểm yếu để hoàn tác trạng thái hash, chuyển đổi các hash có gắn thẻ thành các biến thể không gắn thẻ và tạo ra các xung đột hash (hash collisions) để vượt qua các biện pháp kiểm soát bảo mật.
Chi tiết về lỗ hổng có thể tham khảo tại: GitHub Security Advisory – GHSA-95m3-7q98-8xr5.
Các Kịch bản Tấn công Mạng Chính
Lỗ hổng này thể hiện qua ba kịch bản tấn công chính, mỗi kịch bản đều gây ra rủi ro nghiêm trọng cho các hệ thống sử dụng thư viện sha.js.
- Hoàn tác Trạng thái Hash (Hash State Rewinds): Kẻ tấn công có thể kích hoạt hoàn tác trạng thái hash bằng cách sử dụng các đối tượng có thuộc tính độ dài âm. Điều này làm cho trạng thái mật mã quay trở lại các giá trị trước đó, có thể vô hiệu hóa các kiểm tra tính toàn vẹn.
- Tấn công Sai lệch Giá trị (Value Miscalculation Attacks): Lỗ hổng cho phép các đối tượng được chế tạo đặc biệt tạo ra các đầu ra hash giống hệt nhau cho dữ liệu đầu vào khác nhau. Điều này tạo ra các kịch bản xung đột nguy hiểm, làm suy yếu tính độc nhất của hash.
- Tấn công Từ chối Dịch vụ (Denial-of-Service – DoS): Kẻ tấn công có thể cung cấp các giá trị độ dài bị lỗi, khiến thư viện bị treo vô thời hạn. Điều này dẫn đến sự gián đoạn dịch vụ và khả năng làm tê liệt các ứng dụng phụ thuộc.
Đánh giá CVSS và Mức độ Tác động
Lỗ hổng CVE này đã được gán điểm CVSS v4 cơ bản ở mức nghiêm trọng. Mức điểm này phản ánh tiềm năng tác động nghiêm trọng của nó đối với cả hệ thống dễ bị tổn thương và các hệ thống phụ thuộc.
Vector tấn công hoạt động qua kết nối mạng, với yêu cầu độ phức tạp cao nhưng không cần tương tác người dùng. Điều này làm cho nó đặc biệt nguy hiểm trong các kịch bản khai thác tự động, nơi tấn công mạng có thể diễn ra mà không bị phát hiện.
Biện pháp Khắc phục và Khuyến nghị về Bản vá Bảo mật
Các nhà bảo trì sha.js đã giải quyết lỗ hổng CVE này trong phiên bản 2.4.12. Phiên bản mới bao gồm việc xác thực kiểu dữ liệu đầu vào toàn diện, nhằm ngăn chặn các vector tấn công đã được xác định.
Các tổ chức đang sử dụng thư viện bị ảnh hưởng cần cập nhật ngay lập tức lên phiên bản đã được vá lỗi. Đồng thời, họ nên tiến hành đánh giá bảo mật kỹ lưỡng các hệ thống có thể đã tiếp xúc với các nỗ lực thao túng hash độc hại.
Việc phát hiện ra lỗ hổng này nhấn mạnh tầm quan trọng của việc xác thực đầu vào mạnh mẽ trong các thư viện mật mã. Nó cũng làm nổi bật những rủi ro bảo mật theo tầng có thể phát sinh từ những sai sót triển khai tưởng chừng nhỏ trong các thành phần mã nguồn mở được sử dụng rộng rãi. Việc áp dụng các bản vá bảo mật kịp thời là thiết yếu để duy trì an toàn hệ thống.









