
https://nvd.nist.gov/vuln/detail/CVE-2022-34169
يتحقق مما إذا كان إصلاح CVE-2022-34169 مثبتًا على جهازك. على حد علمي، تم العثور على استغلال من قبل موظف في Google ولم يتم نشره. نظرًا لأن الإصلاح معروف، تمت كتابة روتين اختبار صغير مع هذا للتحقق مما إذا كان الإصلاح متاحًا في وقت التشغيل.
اختياري: هذا متاح فقط إذا كان لديك JDK:
# Optional: To see if `javac` is available: `sudo updatedb && sudo locate /bin/javac`
javac Bcel.java
يمكن تجاهل التحذيرات الستة. الكود الذي يتم التحذير بشأنه يُستخدم لتضمين مكتبة Bcel المتوفرة في OpenJDK. إذا أراد المرء تضمين مكتبة Bcel بنفسه، فسيكون الأمر أكثر تعقيدًا بعض الشيء وسيكون الإصدار محددًا مسبقًا - وهذا ليس بالضرورة متوافقًا مع روح هذا التمرين.
# `cd` into (built) folder where `Bcel.class` is, then:
java Bcel
echo $?
لا تنخدع بأكواد الخطأ. فهي معكوسة. يطرح الإصلاح https://github.com/openjdk/jdk/commit/41ef2b249073450172e11163a4d05762364b1297?diff=unified#diff-3d2cb29a8f3fca8e2f3421d2898dce63255b850406456533cce91f26dbf8dbe2R217 خطأً برمز خطأ 1 وبالتالي يكشف الخطر الأمني. إذا لم يكن الإصلاح موجودًا، يكتمل تنفيذ الكود المصدري دون خطأ برمز خطأ 0 - ولكن يتم إنشاء عدد كبير جدًا من العناصر في الكائن!