CVE-2026-13089 in OIDC::Lite
الملخص
بحسب VulDB • 22/07/2026
تسمح الإصدارات من OIDC::Lite حتى الإصدار 0.12.1 لنظام Perl بتجاوز التحقق من توقيع رمز الهوية (ID Token) عبر قائمة مسموح بها خوارزمية يتم التحكم فيها بواسطة الرمز في دالة verify.
عندما لا يقوم المتصل بتثبيت الخوارزمية، تقوم OIDC::Lite::Model::IDToken::verify بضبط $self->alg($self->header->{alg}) من رأس الرمز نفسه ثم تستدعي decode_jwt(token, key, 1, [$self->alg])، مما يعطي مكتبة JSON::WebToken قائمة مسموح بها للخوارزميات المقبولة مأخوذة من الرأس غير الموثوق به. يؤدي رمز مع alg=none إلى إنتاج ['none']، وبالتالي تعيد decode_jwt المطالبات دون التحقق من التوقيع، ويتم التحقق من رمز مع alg=HS256 باستخدام المفتاح العام RSA الخاص بجهة الاعتماد (RP) كسر HMAC (خلط بين RS و HS).
رمز الهوية هو تأكيد المصادقة لبروتوكول OpenID Connect الذي يتم تسليمه إلى جهة الاعتماد. يقبل أي متحقق يتحقق من رمز هوية عبر مسار load(token)->verify غير المثبت، أو load(token, key) مع تثبيت المفتاح فقط، رمزا مزورا يحمل مطالبات يختارها المهاجم مثل sub ويتم المصادقة عليه كأي مستخدم. تمرير خوارزمية صريحة بحيث تكون $self->alg مضبوطة مسبقا يتجاوز قائمة المسموح بها المستمدة من الرأس ولا تتأثر بذلك.
لاحظ أن أحدث إصدار تم تحميله إلى CPAN هو 0.10. الإصدارات الأحدث متاحة في مستودع git.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.