العودة إلى التحديثات
UpdatedSep 2, 2026

CVE-2026-0603 — Updated!

Hibernate ORM حقن SQL من الدرجة الثانية

مشاركة

CVE-2026-0603 حقن Hibernate ORM / حقن SQL من الدرجة الثانية

★ CVE-2026-0603 إثبات مفهوم حقن Hibernate SQL ★

https://github.com/user-attachments/assets/2e7c3a89-e26f-48cd-af0b-8b82d32ce71f


نظرة عامة

CVE-2026-0603 هو ثغرة حقن SQL من الدرجة الثانية في Hibernate ORM، وهو إطار عمل ORM لجافا واسع الانتشار.
عندما يُستخدم مفتاح أساسي نصي مُقدَّم من المستخدم يحتوي على حمولة SQL خبيثة في عملية DELETE أو UPDATE جماعية، يُدرج Hibernate القيمة مباشرةً في جملة WHERE دون تعقيم، مما يؤدي إلى حذف أو تعديل جماعي غير مقصود لسجلات قاعدة البيانات.


الإصدارات المتأثرة

الفئةالإصدار
المتأثرةHibernate ORM 5.2.8 ≤ الإصدار ≤ 5.6.15
المُصحَّحةلا يوجد تصحيح رسمي (5.6.x EOL)

التأثير

  • حذف جماعي للسجلات عبر جداول متعددة
  • تعديل جماعي للسجلات عبر جداول متعددة
  • تسريب محتمل للبيانات الحساسة من قاعدة البيانات

البيئة

docker build -t cve-2026-0603-hibernate-vuln .
docker run --rm -it -p 8080:8080 --name hibernate-vuln cve-2026-0603-hibernate-vuln

إثبات المفهوم

بعد تشغيل البيئة المعرّضة للثغرة، اتبع الخطوات أدناه لإعادة إنتاج الهجوم.

الخطوة 1. التسجيل باسم مستخدم خبيث

username: ' or '1' = '1

الخطوة 2. تفعيل التحديث أو الحذف

انقر على زر التحديث أو الحذف في الحساب المسجَّل.

الخطوة 3. تأكيد تأثر جميع بيانات المستخدمين

تحقق من أن استعلام DELETE أو UPDATE قد طُبِّق على جميع الصفوف، وليس فقط على الحساب المسجَّل. في حالة DELETE، تُحذف جميع السجلات عبر كلا الجدولين. في حالة UPDATE، تُعدَّل جميع السجلات بالقيم المُقدَّمة من المهاجم.


التخفيف

  • أزل إعداد InlineIdsOrClauseBulkIdStrategy من application.yml
  • إذا كان لا بد من استخدام InlineIdsOrClauseBulkIdStrategy، فطبِّق تحققًا صارمًا من المدخلات قائمًا على القائمة البيضاء على أي قيم مفاتيح أساسية مُقدَّمة من المستخدم لرفض أحرف التحكم في SQL

التحليل

الفئات