CVE-2026-71887 in BC-JAVA정보

요약

\~에 의해 VulDB • 2026. 10. 03.

Java용 Bouncy Castle 1.86 이전 버전에서 상위 수준의 OpenPGP API는 Subkey Binding 서명에 임베디드 Primary Key Binding(크로스 인증) 서명이 포함되어 있지 않은 서명 하위 키로 만든 데이터 서명을 수락했습니다. 해당 바인딩이 Key Flags 서브패킷을 생략하는 경우입니다. RFC 9580의 섹션 5.2.1.8 및 10.1.3은 서명 생성 능력이 있는 모든 하위 키에 임베디드 Primary Key Binding 서명을 요구합니다. 이는 해당 하위 키가 자신이 바인딩된 주요 키와 연결되어 있음을 스스로 선언하는 것입니다. OpenPGPCertificate는 하위 키의 key flags를 두 가지 다른 방식으로 해결했습니다. isSigningKey() 메서드는 getKeyFlags() 및 getApplyingSubpacket()을 거치며, 바인딩 서명이 해당 서브패킷을 생략할 경우 주요 키의 직접-키 또는 주요 사용자 ID 자기 서명으로 폴백되므로 하위 키는 주요 키의 SIGN_DATA를 상속받아 서명 가능으로 간주되었습니다. 반면, 요구사항을 강제하는 verifyEmbeddedPrimaryKeyBinding() 메서드는 바인딩 서명의 자체 해시된 서브패킷들을 읽었고, 거기에 SIGN_DATA가 없음을 발견하여 백 서명을 요청하지 않고도 비서명 키로서 조기에 반환했습니다. 따라서 동일한 하위 키는 서명 가능 상태였으므로(그리고 그 서명은 인증서에 귀속되었으며 OpenPGPSignature.OpenPGPDocumentSignature.isValid()이 true를 반환함) 크로스 인증 면제를 받았지만, GnuPG는 동일한 인증서와 메시지를 거부합니다. 공격자에게 필요한 것은 피해자의 공개 서명 하위 키뿐이며, 이는 공개 자료입니다. 공격자는 이 키에 자신의 주요 키를 Subkey Binding 서명으로 바인딩하는데, 이때 Key Flags가 없고 임베디드 Primary Key Binding 서명이 없는 서명을 생성합니다(이러한 서명은 하위 키의 개인 키 없이는 만들 수 없습니다). 그리고 피해자의 진정으로 서명된 메시지 중 하나를 해당 인증서와 비교 검증하는 신뢰 당사자는 그 서명이 유효하다고 통보받고, 공격자의 인증서를 발급자로서 전달받습니다. 인증서의 User ID는 자기 주장이므로, 하위 키의 지문 또는 키 ID에 고정(pin)하고 enclosing certificate에서 신원을 가져오는 검증기는 실제 서명을 공격자가 선택한 신원 아래서 보고합니다. 이는 새로운 서명의 위조가 아닌 genuine signature(진짜 서명)의 misattribution(잘못된 귀속)입니다: 개인 키는 복구되지 않으며, 해당 서명은 grafted subkey(붙여넣기 하위 키)가 실제로 생성한 것이어야 합니다. 저수준 PGPSignature / PGPPublicKeyRing API는 설계상 바인딩 검사를 수행하지 않으므로 영향을 받지 않습니다. Key Flags는 운반하는 서명이 참조하는 키에 대한 선언입니다(RFC 9580 섹션 5.2.3.29). 따라서 하위 키는 주요 키의 인증서 전체 서명에서 key flags를 상속받지 않게 되며, 해당 서브패킷을 생략한 Subkey Binding 서명은 이제 하위 키가 주요 키의 권한 대신 아무런 기능도 가지지 않도록 만듭니다. 이는 크로스 인증 검사가 참조하는 flags가 다른 모든 결정이 참조하는 동일한 flags와 일치하게 만듭니다. 직접-키 서명이 포함하는 Preferences 및 기타 서브패킷들은 이전과 동일하게 상속되며, 그 자체의 직접-키 또는 User ID 자기 서명에서 legitimately(정당하게) 권한을 얻는 주요 키 자체도 영향을 받지 않습니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Want to know what is going to be exploited?

We predict KEV entries!