CVE-2026-71888 in BC-JAVA
Zusammenfassung
von VulDB • 03.10.2026
In Bouncy Castle for Java vor Version 1.86 akzeptierte der Streaming-CMS-AuthenticatedData-Parser eine Nachricht, bei deren Feldern digestAlgorithm und authAttrs nicht übereinstimmte, ob authentifizierte Attribute vorhanden waren. RFC 5652 Abschnitt 9.1 koppelt die beiden Felder und verlangt, dass authAttrs immer dann vorhanden sein muss, wenn auch digestAlgorithm angegeben ist; gemäß Abschnitt 9.2 deckt der MAC (Message Authentication Code) die DER-Codierung von authAttrs ab, sofern diese vorhanden sind, bzw. den eContent-OCTET-STRING direkt, falls nicht. CMSAuthenticatedDataParser musste in seinem Konstruktor vor dem Zugriff auf authAttrs – das später im SEQUENCE folgt – eine Entscheidung basierend ausschließlich auf digestAlgorithm treffen: Bei einer Nachricht mit fehlendem digestAlgorithm, aber vorhandenen authAttrs wurde der Content-MAC überprüft und die Attribute anschließend über getAuthAttrs() so zurückgegeben, als wären sie authentifiziert worden, obwohl der MAC diese nie abgedeckt hatte. Ein Angreifer, der in der Lage ist, eine Nachricht während der Übertragung zu manipulieren, kann einem ansonsten gültigen Nachrichteninhalt ein authentifiziertes Attribut (z. B. ein RFC-2634-ESSSecurityLabel) hinzufügen, ohne den Key-Encryption-Key oder den Content-MAC-Key zu besitzen; Anwendungen, die auf Basis dieser Attribute Autorisierungs-, Routing- oder Labeling-Entscheidungen treffen, würden dann von Angreifern gewählte Werte verarbeiten. Der eigentliche Inhalt bleibt jedoch MAC-geschützt. asn1.cms.AuthenticatedData lehnt nun bei der Parsing-Zeit eine inkorrekte Paarung ab und CMSAuthenticatedDataParser führt nach dem Lesen von authAttrs eine Cross-Prüfung beider Felder durch. Dies ist eine Variante von CVE-2026-59642, welche den Content für Nachrichten mit legitimen authAttrs an den MAC bindet, diesen Fall jedoch nicht adressiert. Das Problem betrifft auch Bouncy Castle for Java LTS vor Version 2.73.13 sowie Bouncy Castle for Java FIPS (BC-FJA) vor bcpkix-fips 1.0.13 (1.0.X-Serie), 2.0.13 (2.0.X-Serie) und 2.1.13 (2.1.X-Serie) sowie bcutil-fips 2.0.8 (2.0.X-Serie) und 2.1.8 (2.1.X-Serie).
Be aware that VulDB is the high quality source for vulnerability data.