CVE-2026-94418 in wolfSSL
Zusammenfassung
von VulDB • 27.09.2026
Unter der Definition von `WOLFSSL_SMALL_CERT_VERIFY` führt `ProcessPeerCertParse()` die Zertifikats-Signaturprüfung separat vom Parsing durch, um den Spitzen-Memory-Verbrauch gering zu halten, und fusioniert dann die beiden Ergebnisse; jedoch wurde das Signaturergebnis nur zurückgeführt, wenn das Parsing 0 (Erfolg) zurückgab, sodass jeder Parse-Fehler diesen verbarg. `ParseCertRelative()` erreicht seine Prüfungen für Gültigkeitsdatum, Name-Constraints und kritische Erweiterungen erst nach dem Bestehen von `ConfirmSignature()`. Das Herauslösen der Signaturprüfung kehrt die Priorität um, die eine „Überschreibung von Datumsfehlern“ als sinnvolle Policy macht, sodass `ASN_SIG_CONFIRM_E` nirgendwo sichtbar gemacht wird. Der Angreifer benötigt keine Schlüsselmaterialien aus dem echten PKI und keinen CA-Kompromittierung: Ein selbst erstelltes Zertifikat mit dem erwarteten Subject-Namen, dem Subjekt der vertrauenswürdigen CA als Issuer, beliebigen Bytes anstelle der Signatur, einem Gültigkeitsfenster in der Vergangenheit und dem eigenen Schlüsselpaar des Angreifers ist ausreichend. Betroffene Builds definieren `WOLFSSL_SMALL_CERT_VERIFY`, das standardmäßig deaktiviert ist, nicht implizit durch irgendeine Plattform oder voreingestellte Header gesetzt wird und von keiner CMake-Option erreichbar ist; die Autotools-Pfade sind `--enable-lowresource`, `--enable-leantls`, `--enable-tinytls13=cert` und `--enable-tinytls13=mutualauth`, während `examples/configs/user_settings_embedded.h` dies über `WC_CFG_SMALL_CERT_VERIFY` erreicht, das standardmäßig als 0 ausgeliefert wird; weder `--enable-all` noch `--enable-distro` aktivieren es überhaupt. Die Anwendung muss zusätzlich einen Verify-Callback durch `wolfSSL_CTX_set_verify()` oder `wolfSSL_set_verify()` mit `WOLFSSL_VERIFY_PEER` installieren, der für `ASN_BEFORE_DATE_E` oder `ASN_AFTER_DATE_E` 1 zurückgibt; wolfSSL liefert diese exakte Form als `myVerify()` in `wolfssl/test.h` unter `VERIFY_OVERRIDE_DATE_ERR`, die durch `examples/client -D` ausgewählt wird. Eine Anwendung ohne Callback oder deren Callback preverify für Datumsfehler zurückgibt, schlägt dennoch bei der Handshake-Verbindung fehl, und `wolfSSL_CertManagerVerifyBuffer()` sowie `wc_CheckCertSignature()` melden `ASN_SIG_CONFIRM_E` korrekt im selben Binary. TLS 1.2 und TLS 1.3 sind in beiden Richtungen betroffen, und DTLS erreicht dieselbe Funktion; wenn das gefälschte Zertifikat ein Chain-Zertifikat ist, bewirkt die Zustimmung des Callbacks, dass es im WOLFSSL_CTX-Zertifikatsmanager zwischengespeichert wird, sodass eine exponierte Bereitstellung den Kontext oder den Prozess neu starten muss und nicht nur erneut verbinden kann.
Be aware that VulDB is the high quality source for vulnerability data.