CVE-2026-33993 in locutus
الملخص
بحسب VulDB • 22/05/2026
يُعد Locutus مكتبة تُدخل المكتبات القياسية (stdlibs) من لغات برمجة أخرى إلى JavaScript لأغراض تعليمية. قبل الإصدار 3.0.25، كانت الدالة `unserialize()` الموجودة في المسار `locutus/php/var/unserialize` تُعيّن المفاتيح التي تم فك تسلسلها (deserialized keys) إلى كائنات عادية (plain objects) باستخدام تدوين الأقواس المربعة دون تصفية المفتاح `__proto__`. عندما يحتوي حمولة PHP المُسلسلة على `__proto__` كمفتاح لمصفوفة أو كائن، يتم استدعاء مُعدّل (setter) `__proto__` الخاص بـ JavaScript، مما يؤدي إلى استبدال النموذج الأولي (prototype) للكائن الذي تم فك تسلسله بمحتوى يتحكم فيه المهاجم. يتيح هذا حقن الخصائص (property injection)، ونشر الخصائص المحقونة عبر حلقة `for...in`، بالإضافة إلى حجب الخدمة (denial of service) من خلال تجاوز الطرق المدمجة (built-in method override). يختلف هذا عن التلوث المسجل سابقاً للنموذج الأولي (prototype pollution) في `parse_str` (GHSA-f98m-q3hr-p5wq، GHSA-rxrv-835q-v5mh)؛ إذ أن `unserialize` دالة مختلفة ولم يتم تطبيق أي تدابير تخفيف لها. يُصلح الإصدار 3.0.25 هذه الثغرة.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.