CVE-2026-71886 in Bouncy Castle
Tóm tắt
Bởi VulDB • 03/10/2026
Trong Bouncy Castle cho Java trước phiên bản 1.86, API chứng chỉ OpenPGP cấp cao đã chấp nhận một chứng chỉ hoặc ủy thác tin cậy của bên thứ ba từ bất kỳ khóa thành phần nào của chứng chỉ phát hành, mà không yêu cầu rằng thành phần đó phải được trao quyền xác thực. `OpenPGPCertificate.getCertificationBy()` và `getDelegationBy()` giải quyết chữ ký của bên thứ ba bằng cách khớp định danh khóa người phát hành với mọi khóa trong chứng chỉ của bên thứ ba, sau đó xác minh chuỗi ràng buộc của thành phần phát hành và chính chữ ký; không có gì kiểm tra xem thành phần phát hành có mang cờ khóa xác thực CERTIFY_OTHER (theo RFC 9580 mục 5.2.3.29) khi chữ ký được tạo hay không. Một phụ khóa chỉ bị ràng buộc với SIGN_DATA - tức là phụ khóa ký trực tuyến của cấu trúc offline-primary chính xác mà các cờ khóa này tồn tại để biểu thị - do đó có thể phát hành một chứng nhận ID người dùng hợp lệ đối với danh tính do kẻ tấn công kiểm soát, hoặc ủy thác khóa trực tiếp độ sâu 1 mức tin cậy giới thiệu toàn diện, và API đã trả về nó dưới dạng chuỗi chữ ký hợp lệ được quy cho chứng chỉ của bên thứ ba. Một ứng dụng coi `getCertificationBy(...).isValid()` hoặc `getDelegationBy(...)` là quyết định danh tính hoặc người giới thiệu đáng tin cậy sẽ gán tuyên bố của kẻ tấn công cho khóa chính ngoại tuyến. Trường hợp tương tự cũng đúng đối với một phụ khóa RSA kế thừa chỉ bị ràng buộc để mã hóa, dù thuật toán của nó vẫn có khả năng ký. Điều này không giả mạo chữ ký của khóa chính hay khôi phục bất kỳ khóa riêng nào; thay vào đó, nó nâng cấp một phụ khóa hạn chế đã bị xâm phạm thành cơ quan phát hành danh tính cho khóa chính, qua đó phá vỡ sự cô lập mà việc tách biệt các cờ khóa cung cấp. Một chứng chỉ hoặc ủy thác của bên thứ ba hiện được quy cho chứng chỉ phát hành chỉ khi khóa thành phần tạo ra nó là khóa chính, hoặc là một phụ khóa mang CERTIFY_OTHER khi chữ ký được tạo, do đó các phụ khóa có khả năng xác thực vẫn được chấp nhận; khóa chính luôn được chấp nhận bất kể cờ khóa của chúng nói gì, vì khóa chính có khả năng xác thực theo thiết kế và các chứng chỉ không chứa gói dữ liệu cờ khóa nào là phổ biến. Việc thu hồi từ bên thứ ba cố ý nằm ngoài quy tắc này, bởi việc từ chối tôn trọng một lệnh thu hồi sẽ duy trì niềm tin thay vì rút lại nó.
If you want to get best quality of vulnerability data, you may have to visit VulDB.