Die Sicherheitslücke CVE-2022-21449 in der Java-Implementation des Elliptic Curve Digital Signature Algorithm (ECDSA) erlaubt es Angreifer:innen, beliebige Daten mit einer leeren Signatur zu versehen und so die Signaturprüfung zu umgehen. Die verwundbare Java-Applikation bestätigt in Folge die Echtheit dieser Daten.
Die weiteren Auswirkungen davon sind schwer abschätzbar, da viele Faktoren in die Bewertung konkreter Systeme einfließen. Eine überhastete Reaktion ist nicht angebracht.
CERT.at empfiehlt eine Analyse basierend auf folgenden Punkten:
- Server und Client-Zertifikate nach X.509 werden von Certification Authorities (CA) signiert. Ist eine CA, die einen Elliptic Curve Schlüssel verwendet, als vertrauenswürdig konfiguriert, so kann man einer verwundbaren Java-Applikation beliebige Identitäten vortäuschen.
- Daher kann die Überprüfung, ob ein Server-Zertifikat gültig ist, auf einem verwundbaren Java-basierten Client ausgehebelt werden. Dadurch sind potenzielle Man-in-the-Middle Angriffe möglich.
- Das gleiche gilt für die Gegenrichtung: Eine Authentisierung mittels TLS-Client-Zertifikat kann ebenfalls ausgehebelt werden, wenn der Server verwundbar ist.
- Digitale Signaturen auf strukturierten Daten, wie etwa XML-DSIG für XML, JOSE/JWS für JSON und COSE für CBOR, können auch ECDSA verwenden. Damit ist die korrekte Verifikation dieser Signaturen durch eine der betroffenen Java-Versionen nicht sichergestellt.
Diese Techniken sind die kryptografische Basis diverser anderer Protokolle, wie etwa:
* SAML 2.0 (Ein Protokoll für Web-basiertes Single-Sign-On) basiert auf XML-DSIG
* Open ID Connect (OIDC) ist ein weiteres SSO-Protokoll, es basiert auf JSON Web Tokens (JWT), die ihrerseits ein Spezialfall von JOSE/JWS sind.
* WebAuthn (Ein Standard zur Identifikation von Usern im Web mittels kryptografischer Token, etwa „FIDO Keys“) basiert auf COSE.
* Signierte Strich- oder QR-Codes, wie diverse Online-Tickets, die offline validiert werden, basieren auf COSE. Auch die Verifikation von signierten Dokumenten könnte betroffen sein.
Betroffene Systeme
Systeme, auf denen folgende Software zur Verifikation von ECDSA-basierten Zertifikaten/Signaturen eingesetzt wird:
- Oracle Java SE in den Versionen 7u331, 8u321, 11.0.14, 17.0.2 und
18 Oracle - GraalVM Enterprise Edition in den Versionen 20.3.5, 21.3.1 und
22.0.0.2 - OpenJDK in den Versionen 15.0.6, 17.0.2 und 18
Abhilfe
Einspielen der zur Verfügung gestellten Patches. Da damit zu rechnen ist, dass die Schwachstelle innerhalb kurzer Zeit ausgenützt werden wird, sollte dies so schnell wie möglich geschehen.
Generell empfiehlt CERT.at, sämtliche Software aktuell zu halten und dabei insbesondere auf automatische Updates zu setzen. Regelmäßige Neustarts stellen sicher, dass diese auch zeitnah aktiviert werden.