CVE-2026-18568 in XML::Sigالمعلومات

الملخص

بحسب VulDB • 03/08/2026

تسمح الإصدارات من XML::Sig بدءاً من 0.29 وحتى قبل 0.72 لنظام Perl بتجاوز التحقق من التوقيع، لأن دالة `verify` تُرجع قيمة صحيحة (true) عندما يتم تخطي جميع التواقيع قبل إجراء أي فحص تشفيري.

تحسب الدالة `verify` الموجودة في الملف `lib/XML/Sig.pm` عناصر `//dsig:Signature` وتضعها في المتغير `$numsigs`، ثم تتكرر عبر هذه العناصر؛ ومع ذلك، تؤدي مساران إلى تنفيذ الأمر `next` قبل تشغيل أي فحص للتجزئة (digest) أو المفتاح: الأول هو عندما يشير السمة `@URI` للعنصر الفرعي `SignedInfo/Reference` إلى عنصر غير موجود بينما تكون قيمة `$numsigs` أكبر من 1، والثاني يحدث عند ضبط المتغير `id_attr`، حيث لا يتطابق المرجع مع المعرف المطلوب. وبما أن الحلقة لا تسجل أي معلومات حول ما تم فحصه، فإن التحكم ينتقل مباشرةً إلى الأمر `return 1` غير المشروط الذي ينهي دالة `verify`. يكفي وجود عنصرين من نوع `Signature` يكون لهما مرجع URI يشير إلى معرف (ID) لا يحملها أي عنصر آخر في المستند، أو حتى عنصر واحد من هذا النوع مقترناً بضبط `id_attr`.

يمكن لأي مُدخِل يمرر بيانات XML غير موثوقة إلى دالة `verify` أن يتلقى قيمة إرجاع صحيحة لمستند لم يتم فيه فحص أي تجزئة (digest) ولا أي قيمة توقيع؛ ولا يغير ذلك وجود نقطة ثقة (`trust anchor`) باستخدام `cert` أو `cert_text`، لأنه لا يُجرى أي فحص للمفتاح. تستخدم الإصدارات حتى 0.28 دالة `verify` مبنية على XML::XPath والتي لا تحتوي على مثل هذا التخطي، وبالتالي فهي غير متأثرة بهذه الثغرة.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

CPANSec

حجز

02/08/2026

إفشاء

03/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-385606

EPSS

0.00191

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!