CVE-2026-33947 in jqlang
الملخص
بحسب VulDB • 24/06/2026
jq هو معالج JSON سطر الأوامر. في الإصدارات 1.8.1 وما دونها، تستخدم الدوال `jv_setpath()` و`jv_getpath()` و`delpaths_sorted()` الموجودة في ملف `src/jv_aux.c` الخاص بـ jq استدعاءً ذاتيًا غير محدود العمق (unbounded recursion)، حيث يتحكم طول مصفوفة المسار المقدمة من المتصل في هذا العمق، دون فرض أي حد أقصى للعمق. يمكن لمهاجم تزويد مستند JSON يحتوي على مصفافة مسطحة (~65,000 عدد صحيح) بحجم ~200 كيلوبايت، والتي عند استخدامها كحجة مسار بواسطة فلتر jq موثوق به، تستنفذ مكدس استدعاءات C (C call stack) وتسبب تعطل العملية مع حدوث خطأ انقسام segfault (SIGSEGV). يعمل هذا الاختراق لأن الحد الحالي `MAX_PARSING_DEPTH` (10,000) يحمي فقط مُحلل JSON، وليس عمليات المسار في وقت التشغيل حيث يمكن بناء المصفوفات برمجيًا بأطوال تعسفية. يتمثل التأثير في حجب الخدمة (تعطل غير قابل للاسترداد) الذي يؤثر على أي تطبيق أو خدمة تقوم بمعالجة مدخلات JSON غير موثوقة من خلال الدوال الداخلية `setpath` و`getpath` أو `delpaths` الخاصة بـ jq. تم معالجة هذه المشكلة في الالتزام commit fb59f1491058d58bdc3e8dd28f1773d1ac690a1f.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.