
اكتشف بأمان ما إذا كان هدف PAN-OS معرضًا للخطر من CVE-2026-0265.
تحديد ما إذا كانت بوابة GlobalProtect الخاصة بـ Palo Alto Networks PAN-OS معرضة للثغرة CVE-2026-0265 بأمان دون المصادقة على أي جلسة أو تعديل أي حالة.
CVE-2026-0265 هي ثغرة تجاوز المصادقة عن بُعد تؤثر على PAN-OS وPanorama ويتم تفعيلها عند استخدام ملف تعريف مصادقة لخدمة المصادقة السحابية (CAS). تقوم الدالة المعرضة للخطر pan_auth_verify في libpanmp_mp.so بإرسال التحقق من توقيع JSON Web Token بناءً على رأس alg الذي يتحكم فيه المهاجم فقط - يتم قبول JWT مزيف مع alg=HS256 وتوقيع HMAC-SHA256(cas_public_key_pem, header.payload) كما لو كان رمز CAS حقيقيًا موقّعًا بـ RS256، مما يسمح لأي مهاجم بانتحال شخصية أي مستخدم.
يمكن الوصول إلى الثغرة من خلال سطحين للهجوم - بوابة GlobalProtect (/saml/acs.esp، تنتج جلسة VPN) وواجهة الإدارة (/SAML20/SP/ACS، تنتج مسؤول PAN-OS كامل). تغطي هذه الأداة سطح بوابة GlobalProtect فقط.
يكشف طلب GET /global-protect/prelogin.esp مجهول واحد عن كل ما هو مطلوب للحصول على حكم موثوق:
<cas-auth>yes|no</cas-auth> يتم تعيينه مباشرة بواسطة تكوين المصادقة للبوابة. تؤكد القيمة yes استيفاء الشرط المسبق لـ CVE لهذا المستمع.<saml-request>. يؤدي فك تشفيره إلى الحصول على سلسلة الإصدار الموثوقة لجدار الحماية، والتي يتم بعد ذلك مقارنتها بمصفوفة التصحيحات السريعة لكل قاعدة من إرشادات البائع لإنتاج الحكم..saas — لا تتأثر إصدارات PA المُدارة سحابيًا وفقًا لتوضيح Palo Alto (2026-05-21)، بغض النظر عن رقم الإصدار الأساسي.يقوم النص البرمجي بإخراج الحكم، وإصدار PanOS المُبلغ عنه من جدار الحماية (حتى يتمكن المدافع من التحقق من صحة التقييم مقابل مخزونه)، وسياق الفرز الأساسي (prelogin_status، prelogin_msg، http_status، ملاحظات الأخطاء). إذا كان خط أنابيبك يحتاج إلى بيانات وصفية أكثر ثراءً للجهاز، فقم بمقارنة عنوان URL الهدف مع مخزونك الخاص.
git clone https://github.com/BishopFox/CVE-2026-0265-check
cd CVE-2026-0265-check
pip install requests
يتطلب Python 3.9+ وحزمة requests.
مرر هدفًا واحدًا أو أكثر كوسيطات موضعية، عبر --targets-file، أو من الإدخال القياسي. يتم تغليف أسماء المضيفين وسلاسل host:port تلقائيًا إلى https://.
python3 CVE-2026-0265-check.py [options] <target> [<target>...]
المخرجات الافتراضية هي كائن JSON واحد لكل هدف على الإخراج القياسي (متوافق مع jq).
يصدر النص البرمجي واحدًا من ثلاث فئات من الأحكام لكل هدف. الحكم المحدد يجيب على سؤال الثغرة الأمنية بشكل موثوق لهذا الهدف. الحكم غير المحدد يشير إلى أن الاستقصاء لم يتمكن من الوصول إلى نتيجة ويتطلب متابعة المشغل.
| الحكم | متى |
|---|---|
VULNERABLE | CAS مرتبط، PanOSversion أقل بشكل صارم من التصحيح السريع المُصحح للإصدار الأساسي وفقًا للإرشادات، وليس .saas. |
$ python3 CVE-2026-0265-check.py -b -f targets.txt
https://gp1.customer.example VULNERABLE 11.1.6-h23
https://gp2.customer.example PATCHED 11.1.6-h32
https://vpn.cloud.customer.example NOT-AFFECTED-SAAS 11.2.7-h9.saas
https://mgmt.customer.example NOT-AFFECTED-NO-CAS -
https://www.customer.example NOT-AFFECTED-NOT-GLOBALPROTECT -
https://internal-vpn.customer.example UNDETERMINED-MTLS-GATED -
$ python3 CVE-2026-0265-check.py gp.customer.example | jq .
{
"target": "https://gp.customer.example",
"verdict": "VULNERABLE",
"panos_version": "11.1.6-h23",
"prelogin_status": "Success",
"http_status": 200,
"notes": [
"11.1.6-h23 is below the advisory's patched hotfix for this base."
]
}
يحد gpsvc من المعدل تحت الاستقصاء المتتالي — يقوم النص البرمجي بالفعل بإعادة محاولة كل HTTP 503 مع تراجع متزايد، ولكن -c 5 و -t معتدل يعتبر ودودًا للأساطيل الكبيرة:
cat all-targets.txt | python3 CVE-2026-0265-check.py -b -c 5
يمكن للنص البرمجي إنتاج حكم محدد فقط عندما:
NOT-AFFECTED-NOT-GLOBALPROTECT أو UNDETERMINED-ERROR).UNDETERMINED-MTLS-GATED) أو بفحص وكيل مستخدم عدواني (وإلا UNDETERMINED-VERSION-GATED).موزعة بموجب ترخيص MIT.
استخدام هذه الأداة لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. يتحمل المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المطورون أي مسؤولية ولا يتحملون مسؤولية أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
| العلم | المعنى |
|---|
-f, --targets-file FILE | قراءة هدف واحد لكل سطر من FILE |
-t, --timeout SECONDS | مهلة الطلب. الافتراضي: 20.0 |
-c, --concurrent N | أقصى عدد من الأهداف المتوازية. الافتراضي: 5 |
-b, --brief | إخراج <url>\t<verdict>\t<panos_version> لكل هدف بدلاً من JSON كامل |
--user-agent UA | تجاوز وكيل المستخدم للاستقصاء. الافتراضي هو سلسلة Chrome تشبه المتصفح تتجاوز بوابة إصدار GP-client لـ gpsvc؛ استخدم وكيل مستخدم مخصص إذا كنت بحاجة إلى رؤية سجل الوصول ولا تحتاج إلى المسار المقيد بالإصدار. |
| الحكم | متى |
|---|
PATCHED | CAS مرتبط، PanOSversion عند أو أعلى من التصحيح السريع المُصحح للإصدار الأساسي وفقًا للإرشادات. |
NOT-AFFECTED-SAAS | CAS مرتبط ولكن PanOSversion يحتوي على اللاحقة .saas (مدار من PA سحابيًا؛ غير متأثر وفقًا لـ PA 2026-05-21). |
NOT-AFFECTED-NO-CAS | عاد Prelogin بنجاح ولكن <cas-auth> يشير إلى مصادقة SAML / RADIUS / LDAP / محلية. لا تنطبق CVE على هذا المستمع. |
NOT-AFFECTED-NOT-GLOBALPROTECT | شكل الرد ليس بوابة GP (على سبيل المثال 'بوابة GlobalProtect غير موجودة'). خارج النطاق. |
| الحكم | متى | المتابعة المقترحة |
|---|
UNDETERMINED-VERSION-GATED | أعاد gpsvc 'CAS is not supported by the client'. CAS مرتبط ولكن تم رفض الاستقصاء لأسباب تتعلق بوكيل المستخدم؛ لا يمكن قراءة PanOSversion من هذا الرد. | أعد المحاولة مع تعيين --user-agent إلى سلسلة GP-client حقيقية. |
UNDETERMINED-MTLS-GATED | 'Valid client certificate is required' في رد prelogin. سطح المصادقة مخفي خلف بوابة mTLS. | تأكيد الإصدار عبر قناة منفصلة (الإصدار الموثوق للعميل، أو استقصاء بشهادة عميل صالحة). |
UNDETERMINED-ERROR | فشل الشبكة، رد مشوه، PanOSversion غير قابل للتحليل، أو فشل فك تشفير Token على الرغم من cas-auth=yes. | أعد التشغيل؛ إذا استمر، فمن المحتمل أن الهدف لا يمكن الوصول إليه من هذا الموقع. |