-
09/04/2020
-
94
-
726 bài viết
Thư viện Node.js xml-crypto với hàng triệu lượt tải xuống dính lỗ hổng nghiêm trọng
Hai lỗ hổng nghiêm trọng đã được phát hiện trong thư viện xml-crypto. Với hơn 1,1 triệu lượt tải xuống hàng tuần, các lỗ hổng này có thể gây ảnh hưởng lớn đến các ứng dụng dựa vào thư viện này để xác minh chữ ký XML.
xml-crypto là một thư viện Node.js phổ biến, được sử dụng rộng rãi để thực hiện ký số và xác minh chữ ký XML. Thư viện này đóng vai trò quan trọng trong việc bảo mật dữ liệu XML, đặc biệt trong các quy trình xác thực và ủy quyền như SAML (Security Assertion Markup Language). Nhiều tổ chức và ứng dụng tin tưởng sử dụng xml-crypto để đảm bảo tính toàn vẹn và xác thực của tài liệu XML.
Cả hai lỗ hổng là CVE-2025-29774 và CVE-2025-29775 đều có điểm CVSS là 9,3. Nếu bị khai thác thành công, các lỗ hổng này có thể cho phép kẻ tấn công bỏ qua cơ chế xác thực hoặc ủy quyền trong các hệ thống sử dụng xml-crypto để xác minh tài liệu XML đã ký.
Vấn đề bắt nguồn từ việc có nhiều hơn một nút SignedInfo trong một chữ ký (Signature). Báo cáo nhấn mạnh rằng một chữ ký chỉ nên chứa một nút SignedInfo. Nếu phát hiện nhiều nút SignedInfo, đó có thể là dấu hiệu của một cuộc tấn công.
Tất cả các phiên bản xml-crypto lên đến và bao gồm cả 6.0.0 đều bị ảnh hưởng bởi các lỗ hổng này. Người dùng được khuyến cáo nâng cấp lên phiên bản 6.0.1 càng sớm càng tốt. Người dùng vẫn đang sử dụng phiên bản v2.x hoặc v3.x cũng nên cập nhật lên các bản vá tương ứng (3.2.1, 2.1.6).
Báo cáo đưa ra các dấu hiệu nhận biết nhằm phát hiện khả năng khai thác các lỗ hổng này. Khi ghi log tải trọng XML, cần kiểm tra các dấu hiệu bất thường, đặc biệt khi phân tích phiên bản đã giải mã nếu tải trọng chứa các phần tử được mã hóa. Việc kiểm tra này đặc biệt quan trọng đối với các quy trình xác thực và ủy quyền dựa trên XML, chẳng hạn như xử lý phản hồi SAML (SAML Response).
xml-crypto là một thư viện Node.js phổ biến, được sử dụng rộng rãi để thực hiện ký số và xác minh chữ ký XML. Thư viện này đóng vai trò quan trọng trong việc bảo mật dữ liệu XML, đặc biệt trong các quy trình xác thực và ủy quyền như SAML (Security Assertion Markup Language). Nhiều tổ chức và ứng dụng tin tưởng sử dụng xml-crypto để đảm bảo tính toàn vẹn và xác thực của tài liệu XML.
Cả hai lỗ hổng là CVE-2025-29774 và CVE-2025-29775 đều có điểm CVSS là 9,3. Nếu bị khai thác thành công, các lỗ hổng này có thể cho phép kẻ tấn công bỏ qua cơ chế xác thực hoặc ủy quyền trong các hệ thống sử dụng xml-crypto để xác minh tài liệu XML đã ký.
CVE-2025-29774: Bỏ qua xác minh chữ ký XML thông qua nhiều tham chiếu SignedInfo
Lỗ hổng này cho phép kẻ tấn công chỉnh sửa một thông điệp XML đã ký hợp lệ theo cách bỏ qua quá trình kiểm tra xác minh chữ ký. Chẳng hạn, kẻ tấn công có tài khoản hợp lệ có thể thay đổi các thuộc tính quan trọng liên quan đến danh tính hoặc kiểm soát truy cập, từ đó leo thang đặc quyền hoặc mạo danh người dùng khác.Vấn đề bắt nguồn từ việc có nhiều hơn một nút SignedInfo trong một chữ ký (Signature). Báo cáo nhấn mạnh rằng một chữ ký chỉ nên chứa một nút SignedInfo. Nếu phát hiện nhiều nút SignedInfo, đó có thể là dấu hiệu của một cuộc tấn công.
CVE-2025-29775: Bỏ qua xác minh chữ ký XML thông qua nhận xét trong DigestValue
Tương tự như CVE-2025-29774, lỗ hổng này cho phép kẻ tấn công chỉnh sửa một thông điệp XML đã ký hợp lệ để vượt qua quá trình kiểm tra xác minh chữ ký. Trong trường hợp này, lỗ hổng xuất phát từ sự xuất hiện của các chú thích trong DigestValue. Bản khuyến cáo nhấn mạnh rằng DigestValue không nên chứa chú thích. Nếu phát hiện chú thích bên trong đó, đây có thể là dấu hiệu của sự can thiệp trái phép.Tất cả các phiên bản xml-crypto lên đến và bao gồm cả 6.0.0 đều bị ảnh hưởng bởi các lỗ hổng này. Người dùng được khuyến cáo nâng cấp lên phiên bản 6.0.1 càng sớm càng tốt. Người dùng vẫn đang sử dụng phiên bản v2.x hoặc v3.x cũng nên cập nhật lên các bản vá tương ứng (3.2.1, 2.1.6).
Báo cáo đưa ra các dấu hiệu nhận biết nhằm phát hiện khả năng khai thác các lỗ hổng này. Khi ghi log tải trọng XML, cần kiểm tra các dấu hiệu bất thường, đặc biệt khi phân tích phiên bản đã giải mã nếu tải trọng chứa các phần tử được mã hóa. Việc kiểm tra này đặc biệt quan trọng đối với các quy trình xác thực và ủy quyền dựa trên XML, chẳng hạn như xử lý phản hồi SAML (SAML Response).
- Đối với CVE-2025-29774: Dấu hiệu nhận biết là sự xuất hiện của nhiều nút SignedInfo trong một chữ ký.
- Đối với CVE-2025-29775: Dấu hiệu nhận biết là sự xuất hiện của chú thích (comments) trong DigestValue.
Theo Security Online