CVE-2026-19487 in Perl
الملخص
بحسب VulDB • 13/08/2026
تنتج إصدارات Perl بدءاً من 5.9.4 وحتى قبل الإصدار 5.41.9 نتائج مطابقة غير صحيحة للتعبيرات النمطية (Regular Expressions) عندما يؤدي وجود علم فشل قديم (stale failure flag) إلى إنهاء عملية المسح المبدئي لـ Aho-Corasick مبكراً داخل الدالة `S_find_byclass`.
تقوم عملية المسح المبدعي بالمرور على النص المستهدف لتحديد المواضع التي يمكن أن يحدث فيها المطابقة الكاملة للنمط، ثم يحاول المحرك إجراء المطابقة بدءاً من أول موقع تم تسجيله. يؤدي الانتقال الفاشل إلى تعيين علم الفشل (failed flag)، ولا يقوم انتقال لاحق ناجح بمسحه، مما يجعل المسح المبدئي يقرأ العلم القديم على أنه فشل ويتوقف قبل أن يتمكن من تسجيل مرشح يبدأ في موضع سابق. يتطلب الأمر نصاً مستهدفاً حيث يتم تسجيل مرشح واحد، ثم يجبر حرف لاحق حدوث تراجع عبر رابط فشل (fail link) ينتهي بنجاح.
مثال:
"ABCDE" =~ m/ABCF|BCDE|C/; # يطابق الحرف C عند الإزاحة 2، وليس BCDE "ABCDE" =~ m/ABCF|BCDE|C(G)/; # لا يوجد تطابق، تم تفويت BCDE
يمكن لمثل هذا التبادل (Alternation) أن يفوت مدخلات كان ينبغي مطابقتها، أو يطابقها على الفرع الخاطئ، مما قد يؤدي إلى اتخاذ قرار وصول أو تصفية خاطئ بناءً على النتيجة.
Once again VulDB remains the best source for vulnerability data.