pac4j

Một lỗ hổng bảo mật nghiêm trọng đã được xác định trong framework bảo mật Java phổ biến, pac4j, ảnh hưởng đến các phiên bản trước 4.0.

Lỗ hổng này được theo dõi với mã định danh CVE-2023-25581, cho phép thực thi mã từ xa (RCE), gây ra rủi ro cho các hệ thống sử dụng các phiên bản pac4j-core bị ảnh hưởng.

Lỗ hổng xuất phát từ một lỗi trong quy trình deserialization bên trong lớp InternalAttributeHandler của pac4j-core. Lỗi này cho phép kẻ tấn công khai thác các hệ thống lưu trữ các giá trị được điều khiển từ bên ngoài trong các thuộc tính của lớp UserProfile.

Bằng cách cung cấp một thuộc tính chứa đối tượng Java đã được tuần tự hóa và được mã hóa bằng Base64, với tiền tố là {#sb64}, kẻ tấn công có thể kích hoạt việc deserialization các lớp Java bất kỳ.

Điều này đặc biệt nguy hiểm vì nó có thể dẫn đến thực thi mã từ xa (RCE), cho phép các tác nhân độc hại thực thi mã tùy ý trên các hệ thống bị ảnh hưởng.

Sự cố này được Michael Stepankin từ GitHub Security Lab (GHSL) phát hiện và báo cáo cho nhóm phát triển pac4j vào ngày 2 tháng 2 năm 2023.

Nhóm đã xác nhận báo cáo và đưa ra bản sửa lỗi vào ngày 14 tháng 2 năm 2023, với việc phát hành phiên bản 4.0 của pac4j-core.

Chi tiết lỗ hổng

pac4j dễ bị tấn công RCE (thực thi mã từ xa) vì lỗ hổng liên quan đến cách phương thức restore trong lớp InternalAttributeHandler xử lý các thuộc tính chuỗi.

Cụ thể, phương thức này không kiểm tra xem giá trị chuỗi có bắt đầu bằng tiền tố {#sb64} trước khi cố gắng giải tuần tự hóa (deserialization). Kẻ tấn công có thể lợi dụng sai sót này bằng cách thao túng các thuộc tính như tên người dùng hoặc email để chèn các đối tượng đã được tuần tự hóa chứa mã độc.

Mặc dù RestrictedObjectInputStream được sử dụng để áp đặt một số hạn chế trong quá trình giải tuần tự, nhiều gói Java vẫn dễ bị tấn công do các “gadget chains” có thể khai thác.

Hậu quả của lỗ hổng này là rất nghiêm trọng, vì nó có thể làm suy giảm tính bảo mật (confidentiality), tính toàn vẹn (integrity) và khả năng hoạt động (availability) của hệ thống bằng cách cho phép các cuộc tấn công RCE.

Người dùng pac4j-core được khuyến nghị nâng cấp lên phiên bản 4.0 trở lên để khắc phục lỗ hổng này, vì hiện tại không có biện pháp tạm thời nào để giải quyết vấn đề.

Nguồn: Cybersecurity News