Một lỗ hổng trong thư viện json-web-token dành cho Node.js vừa được phát hiện. Lỗ hổng có mã theo dõi CVE-2023-48238, điểm CVSS 7.5, cho phép hacker thực hiện các cuộc tấn công algorithm confusion JWT.
Mấu chốt của vấn đề nằm ở dòng 86 của tệp ‘index.js’, trong đó thuật toán xác minh chữ ký được trích xuất trực tiếp từ chính token JWT. Ở giai đoạn này, token vẫn chưa được xác minh, khiến nó trở thành nguồn thông tin không đáng tin cậy.
Kẻ tấn công khai thác lỗ hổng này có thể tạo token JWT độc hại chứa thuật toán HS256, ngay cả khi ứng dụng nạn nhân sử dụng thuật toán khác. Token giả mạo này, khi được ký bằng khóa RSA công khai của nạn nhân, có khả năng lừa ứng dụng chấp nhận payload tùy ý của kẻ tấn công.
Tác động của lỗ hổng là đáng lo ngại khi json-web-token được sử dụng rộng rãi, với hơn 4.000 lượt tải xuống hàng tuần và hơn 2.700 kho lưu trữ GitHub dựa vào nó. Các ứng dụng sử dụng thuật toán RS256 dễ dàng bị ảnh hưởng bởi kiểu tấn công này.
Theo các chuyên gia, có hai giải pháp hiệu quả để giảm thiểu lỗ hổng CVE-2023-48238: sửa đổi chữ ký của hàm giải mã và xác thực secret key.
Nguồn: Security Online