
يحتوي هذا المستودع على مُعيد إنتاج بسيط لإثبات المفهوم لـ CVE-2025-69419 الذي يؤثر على الإصدارات المعرضة للخطر من OpenSSL.
يُظهر هذا الإثبات الكتابة خارج نطاق الكومة التي تم الإبلاغ عنها لـ PKCS12_get_friendlyname() عند معالجة سلسلة BMPString friendlyName مصممة خصيصًا.
الهدف من هذا المشروع هو توفير اختبار انحدار بسيط للمطورين وباحثي الأمن.
لا ينفذ هذا الإثبات تقنيات استغلال وهو مخصص فقط لإعادة إنتاج تلف الذاكرة الذي يكتشفه AddressSanitizer.
وفقًا للنشرة العامة، تحدث الثغرة أثناء التحويل من UTF-16 (BMPString) إلى UTF-8 داخل:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()تؤدي سلسلة BMPString تالفة تحتوي على حرف يتطلب تسلسل UTF-8 من ثلاثة بايتات إلى كتابة بايت واحد في الكومة قبل المخزن المؤقت المخصص.
حرّر build.sh وحدد المسار إلى بناء OpenSSL الخاص بك.
ثم شغّل:
./build.sh
./run.sh
النتيجة المتوقعة على بناء ASan معرض للخطر:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
يجب أن تتضمن تتبّع الاستدعاءات:
OPENSSL_uni2utf8PKCS12_get_friendlynameبدون AddressSanitizer، قد يستمر التطبيق في التنفيذ لأن التلف يتكون من كتابة بايت واحد قبل تخصيص الكومة مباشرةً. يكتشف ASan الوصول خارج النطاق بشكل موثوق وينهي العملية عند نقطة التلف.