Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
POC-CVE-2025-6554 — استغلال إثبات المفهوم لـ CVE-2025-6554، وهي ثغرة في محرك V8 JavaScript تسمح بالوصول غير المصرح به إلى قيم 'Hole' غير المهيأة عبر الربط الاختياري، مما يتيح ارتباك النوع والتلاعب بالذاكرة. | Kitploit
أدوات/GitHubGitHub/ghostn4444/poc-cve-2025-6554
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubghostn4444/poc-cve-2025-6554

POC-CVE-2025-6554

استغلال إثبات المفهوم لـ CVE-2025-6554، وهي ثغرة في محرك V8 JavaScript تسمح بالوصول غير المصرح به إلى قيم 'Hole' غير المهيأة عبر الربط الاختياري، مما يتيح ارتباك النوع والتلاعب بالذاكرة.

عرض المستودع
112منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-6554

CVE-2025-6554 هي ثغرة أمنية في مُفسِّر V8 (محرك JavaScript) في Chrome (فحص "Hole" 'تحكم غير كافٍ في متغيرات غير مقصودة ضمن تعبيرات مع الربط الاختياري). يستكشف POC (CVE-2025-6554-POC.JS) خللاً في آلية التحقق من "Hole" في المتغيرات قبل استخدامها، مما يسمح بقراءة قيم غير مهيأة — سلوك يتم حظره عادةً بواسطة مرجع.

root@kitploit:~
function leak_hole() {
    let x;
    delete x?.[y]?.a;
    return y;
    let y;
}
function pwn() {
    let hole = leak_hole();
    %DebugPrint(hole);
}
pwn();

شرح تقني

1. بنية الكود القابل للاستغلال

let x; و let y; يُعلنان متغيرين في النطاق المحلي. يستخدم السطر delete x?.[y]?.a الربط الاختياري للوصول بأمان إلى خاصية متداخلة. المشكلة: تم استخدام المتغير y قبل تعريفه، مما كان يجب أن يطلق خطأ مرجعي، لكن في V8 قبل التصحيح، فشل هذا بصمت، مما سمح بالتقاط القيمة الخاصة المسماة "The Hole" (حارس للمتغيرات في المنطقة الميتة المؤقتة TDZ). لا ينبغي أن تكون القيمة المُرجَعة () في الكود قابلة للوصول لأن لا يزال في TDZ. لكن الفشل يسمح بذلك.

return y
y

2. السلوك قبل التصحيح

الآلية التي تمنع الوصول إلى المتغيرات في TDZ هي ThrowReferenceErrorIfHole. قبل التصحيح، تم استدعاء هذه الآلية مرة واحدة فقط أثناء delete x?.[y]?. حدد V8 داخلياً أن المتغير y قد تم التحقق منه بالفعل على أنه "ليس Hole"، لكن هذا التحقق كان يفلت من النطاق المُتحكَّم به، وبالتالي لم يتم إعادة تقييمه أثناء return y.

3. ما تم تصحيحه

يضيف التصحيح استدعاءً إلزامياً آخر لـ ThrowReferenceErrorIfHole عند return y، مما يضمن أن أي محاولة للوصول إلى y قبل تعريفه تطلق خطأ بشكل صحيح. تم ضمان هذا التحقق بواسطة نطاق OptionalChainingNullLabelScope، الذي تم تضمينه في جميع استدعاءات OptionalChainingNullLabelScope.

تدفق الهجوم

root@kitploit:~
delete x?.[y]? → محاولة الوصول إلى y (غير مهيأ) ← فشل التحقق من "Hole"
→ y يهرب كقيمة ← return y; ← التقاط قيمة "Hole" ← DebugPrint يكشف

المهاجم، عند التقاط هذا "Hole"، يمكنه استنتاج الحالة الداخلية لمحرك V8، مما يسهِّل هجمات مثل:

  • استغلال خلط الأنواع (Type Confusion)

  • التلاعب بالمكدس (Stack Manipulation)

  • التحايل على نطاق التحقق (Scope Check Circumvention)

تنزيل الأداة