
Minimaler Proof-of-Concept-Reproducer für CVE-2025-69419, einen Heap-Pufferüberlauf in OpenSSLs PKCS12_get_friendlyname(), ausgelöst durch einen manipulierten BMPString. Vorgesehen für Regressionstests und Sicherheitsforschung.
Dieses Repository enthält einen minimalen Proof-of-Concept-Reproducer für CVE-2025-69419, der verwundbare Versionen von OpenSSL betrifft.
Der PoC demonstriert den Heap-Out-of-Bounds-Write, der für PKCS12_get_friendlyname() gemeldet wurde, wenn ein speziell präparierter BMPString friendlyName verarbeitet wird.
Das Ziel dieses Projekts ist es, Entwicklern und Sicherheitsforschern einen einfachen Regressionstest bereitzustellen.
Dieser PoC implementiert keine Exploitation-Techniken und dient ausschließlich dazu, die von AddressSanitizer erkannte Speicherkorruption zu reproduzieren.
Laut dem öffentlichen Sicherheitshinweis tritt die Schwachstelle während der Konvertierung von UTF-16 (BMPString) zu UTF-8 innerhalb folgender Funktionen auf:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()Ein fehlerhafter BMPString, der ein Zeichen enthält, das eine Drei-Byte-UTF-8-Sequenz erfordert, führt zu einem Ein-Byte-Heap-Schreibzugriff vor dem zugewiesenen Puffer.
Bearbeiten Sie build.sh und legen Sie den Pfad zu Ihrem OpenSSL-Build fest.
Führen Sie dann Folgendes aus:
./build.sh
./run.sh
Erwartetes Ergebnis bei einem verwundbaren ASan-Build:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
Der Stack-Trace sollte Folgendes enthalten:
OPENSSL_uni2utf8PKCS12_get_friendlynameOhne AddressSanitizer kann die Anwendung die Ausführung fortsetzen, da die Korruption aus einem Ein-Byte-Schreibzugriff unmittelbar vor einer Heap-Allokation besteht. ASan erkennt den Out-of-Bounds-Zugriff zuverlässig und beendet den Prozess an der Stelle der Korruption.