
مستودع تجريبي لاستغلالات CVE-2015-4843 من نوع الخلط النوعي وتجاوز الكومة في JVM، مع عروض Java قابلة للتشغيل توضح تلف الذاكرة على معماريات aarch64 و Morello.
تمت مناقشة تفاصيل الثغرة الأمنية على confluence.
تم إحياء هذا المستودع بعد بضع سنوات من التوقف، ولم يتم النظر في كود DisabledSecurityManager.
هذا عرض يوضح أنه يمكننا التجاوز إلى قبل مصفوفة dst. يعمل هذا العرض على aarch64 و morello، على الرغم من أن التجاوز يتم إيقافه فقط على فرع العمل قيد التطوير حيث تكون الحدود مقيدة بإحكام. وهو أمر رائع لأنه يظهر أن استخدام قدرات cheri وحدها لا يوفر الحماية الكافية لبيئات التشغيل المُدارة، ونحن بحاجة إلى تقييد كومة الذاكرة الخاصة بنا.
يظهر هذا العرض أنه من خلال نسخ كائن FakeClass oop إلى مصفوفة من RealClass باستخدام التجاوز، يمكننا إحداث ارتباك في النوع وجعله ينفذ دالة FakeClass. يعمل هذا العرض فقط على aarch64، لأنه على morello لن يكون oop عنوان ذاكرة (MemoryAddress)، ولا يمكننا استخدام استغلال IntBuffer بعد الآن. وهو فائدة جانبية مثيرة لاهتمام لمنفذنا.
يمكن تشغيل كل من التجاوز وارتباك النوع من ملف jar باستخدام الوسيطة:
overflow: يقوم بتشغيل OverflowDemoconfusion: يقوم بتشغيل TypeConfusionDemoمثال:
./build/bsd-aarch64-template-aarch64-release/jdk/bin/java -Xmx8G -Xms8G -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -jar /home/slatere/phrack/target/TestOverflow-1.0-SNAPSHOT-jar-with-dependencies.jar confusion
يتم إنشاء ملف jar على الخادم البعيد باستخدام build-phrack.yml.