
كاشف إثبات المفهوم (PoC) ومُدقِّق آمن لسلسلة ثغرات WP2Shell في ووردبريس: CVE-2026-63030 (التباس توجيه الدُفعات في REST) + CVE-2026-60137 (حقن SQL عبر author__not_in). للاختبارات الأمنية المصرح بها فقط.
تغطية CVE: CVE-2026-63030 وCVE-2026-60137 الاستخدام المقصود: اختبار أمني مصرّح به، وتحقق دفاعي، ومختبرات localhost مؤقتة قابلة للتخلص فقط
WP2Shell هي سلسلة ثغرات في نواة ووردبريس تجمع بين خطأ ارتباك مسار الدُفعات في REST API قبل المصادقة (CVE-2026-63030) وبدائية حقن SQL في WP_Query عبر author__not_in (CVE-2026-60137). يوفر هذا المستودع ماسحًا ضوئيًا وإثبات صحة آمنًا بلغة Python حتى يتمكن المدافعون من تحديد تثبيتات ووردبريس المتأثرة، وتأكيد السلوك القابل للاستغلال في مختبر معزول، والتحقق من المعالجة — دون الحاجة إلى استخراج بيانات أو تحقيق تنفيذ أكواد.
يقوم هذا المشروع بتحديد تثبيتات ووردبريس والتحقق من بدائيتَي الثغرات المرتبطتين بسلسلة ثغرات WP2Shell في نواة ووردبريس:
WP_Query::author__not_in، مما قد يؤدي إلى حقن SQL عندما تصل مدخلات يتحكم بها المهاجم إلى المعامل.عندما يتوفر كلا الشرطين، قد يصل طلب غير مصادق إلى بناء SQL القابل للاستغلال عبر نقطة نهاية الدُفعات في REST API. تصف النشرات العامة الأثر المشترك بأنه قد يؤدي إلى تنفيذ أكواد عن بُعد.
يجب استخدام هذا المستودع فقط على أنظمة تملكها أو صرّح لك صراحةً باختبارها. يُفضَّل استخدام مختبر Docker أو جهاز افتراضي معزول مرتبط بـ 127.0.0.1.
يحتوي ملف المصدر الحالي على وظائف تغيّر الحالة، بما في ذلك محاولات استخراج بيانات قاعدة البيانات، ومحاولات كتابة ملفات، وسير عمل المصادقة، وإنشاء مسؤول، ورفع إضافات، وتنفيذ أوامر.
يمكن أن تفقد إصدارات ووردبريس المتأثرة المحاذاة بين المصفوفات الداخلية المستخدمة لتتبع:
عندما يتم قبول عضو دفعة مشوّه في مصفوفة داخلية واحدة دون أخرى، يمكن أن ترتبط الطلبات اللاحقة بمعالج خاطئ. وبالتالي قد يتم التحقق من الطلب كمسار واحد ولكن تنفيذه باستخدام استدعاء مسار آخر.
الأثر الأمني:
author__not_inلا يقوم تطبيق WP_Query المتأثر بتطبيع author__not_in بشكل متسق قبل استخدامه لبناء شرط NOT IN (...) في SQL.
يتوقع المعامل عادةً قائمة من معرّفات المؤلفين الصحيحة. إذا وصلت سلسلة نصية قياسية إلى بناء الاستعلام القابل للاستغلال دون تحقق مخطط REST المطلوب، فقد تبقى بنية SQL غير آمنة داخل استعلام قاعدة البيانات.
الأثر الأمني:
أصدر ووردبريس إصلاحات في 17 يوليو 2026، وفعّل التحديثات التلقائية الإجبارية للتثبيتات المتأثرة بسبب شدة الخطورة.
Unauthenticated client | v WordPress REST batch endpoint | v Malformed batch member creates request/handler misalignment | v Later request is validated against one route but dispatched using another route's handler | v Scalar author_exclude reaches WP_Query as author__not_in | v Unsafe value reaches SQL NOT IN (...) construction | v Blind SQL timing or Boolean oracle | v Potential database compromise | v Potential application-level compromise and RCE
يجب أن يتوقف المكتشف بعد تأكيد بدائيات الالتباس في التوجيه وحقن SQL. لا يحتاج إلى استخراج البيانات أو تنفيذ الأوامر لإثبات أن التثبيت المتأثر معرّض للخطر.
---
## سير عمل الاكتشاف
### المرحلة 1 — تطبيع الهدف
تقوم الأداة بما يلي:
1. تضيف مخطط `http` أو `https` افتراضيًا إذا كان مفقودًا.
2. تطبّع مسار تثبيت ووردبريس.
3. ترفض مخططات URL غير المدعومة وبيانات الاعتماد المضمّنة.
4. تطبّق سياسات إعادة التوجيه والوكيل وTLS والمهلة الزمنية.
### المرحلة 2 — تحديد ووردبريس
يفحص الماسح بحثًا عن:
- مراجع `wp-content/`.
- مراجع `wp-includes/`.
- بيانات ووردبريس الوصفية للمولّد.
- روابط اكتشاف REST API.
- بنية فهرس REST الخاصة بووردبريس.
- مساحة الاسم `wp/v2`.
- بصمات اختيارية للتغذية و`readme.html`.
### المرحلة 3 — تحديد الإصدار
يمكن أن تأتي أدلة الإصدار من:
- بيانات وصفية للمولّد في HTML.
- بيانات وصفية للمولّد في التغذية.
- سلاسل استعلام أصول نواة ووردبريس.
- ترويسات HTTP الخاصة بالمولّد.
- `readme.html`.
- ملف `wp-includes/version.php` محلي.
يتم تقييم الأدلة والتوفيق بينها. مؤشرات الإصدار البعيد المتعارضة تخفض مستوى الثقة.
### المرحلة 4 — التحقق من تعرض مسار الدفعة
يحاول الماسح اكتشاف `/batch/v1` عبر:```text
/?rest_route=/
/wp-json/
يمكن الوصول إلى المسار باستخدام أيٍّ من:```text /?rest_route=/batch/v1 /wp-json/batch/v1
### المرحلة 5 — استكشاف آمن لالتباس المسار
يحتوي الاستكشاف الآمن على:
1. مسار داخلي مشوّه عمدًا.
2. طلب إلى معرّف منشور غير صالح مع طلب `GET` عام متداخل غير ضار.
3. طلب `/batch/v1` لاحق.
يعيد الخادم القابل للاستغلال استجابة `207 Multi-Status` خارجية تتم فيها معالجة طلب المنشور غير الصالح كطلب دفعي متداخل.
يُبلِغ المكتشف:```text
route-confusion-observed
عندما يرى:
parse_path_failed المتوقعة.207.responses متداخلة تُظهر أن الطلب الداخلي غير الضار تم تنفيذه.ينبغي أن يرسل مُتحقِّق SQLi غير تدميري طلبات مقترنة لا تختلف إلا في شرط منطقي ثابت:```text False control -> no deliberate database delay True test -> deliberate database delay
يجب أن يقوم المُدقِّق بما يلي:
- قبول استجابة HTTP الخارجية المتوقعة `207`.
- تحليل كلٍّ من أغلفة الدفعات الخارجية والمتداخلة.
- التحقق من علامات الطلبات المشوّهة.
- التأكد من أن الطلب المتداخل الحامل لحقن SQL أعاد استجابة صالحة.
- جمع عدّة عينات صحيحة وخاطئة.
- عشوائية ترتيب العينات أو تداخله.
- مقارنة الوسيطات بدلاً من طلب واحد.
- الإبلاغ عن القياسات غير الكافية كـ `inconclusive`.
فجوة قابلة للتكرار بين العينات الصحيحة والخاطئة تؤكد أن الإدخال الذي يتحكم به المهاجم وصل إلى تقييم SQL. لا يلزم تحديد أو استخراج أي محتويات من قاعدة البيانات.
---
## المتطلبات
- بايثون 3.9 أو أحدث.
- لا يتطلب السكربت المرفق أي حزم بايثون تابعة لجهات خارجية.
- وصول شبكي إلى تثبيت ووردبريس المصرح به.
- للاختبار المحلي:
- بيئة مختبرية مؤقتة لـ WordPress 7.0.1 أو 6.9.4.
- حاوية قاعدة بيانات أو قاعدة بيانات اختبار مخصصة.
- خدمة الويب المرتبطة بـ `127.0.0.1`.
- لا بيانات اعتماد إنتاجية أو بيانات.
تحقق من بايثون:```bash
python3 --version
التحقق الاختياري من بناء الجملة:```bash python3 -m py_compile WP2Shell_CVE-2026-63030_POC.py
---
## التثبيت
أعد تسمية السكربت المرفق إلى اسم ملف يمكن التنبؤ به:```bash
mv 'poc(1).py' WP2Shell_CVE-2026-63030_POC.py
chmod +x WP2Shell_CVE-2026-63030_POC.py
Display global help:```bash python3 WP2Shell_CVE-2026-63030_POC.py --help
اعرض الإصدار:```bash
python3 WP2Shell_CVE-2026-63030_POC.py --version
يعرّف السكريبت ثلاثة أوامر:```text remote Fingerprint and scan HTTP(S) WordPress targets. local Read the installed WordPress version from a source tree. exploit State-changing proof-of-concept path.
### حالة البناء الحالية
| الأمر | الحالة |
|---|---|
| `local` | تم تنفيذه |
| `remote` | تم تعريف واجهة سطر الأوامر (CLI)، لكن `run_remote()` حالياً مجرد كعب (stub) وتُرجع خطأً |
| `exploit` | يحتوي على وظائف تغيّر الحالة؛ اقتصر استخدامه على بيئة معملية محلية قابلة للتخلص وافصله عن الفحص الدفاعي |
المصدر يطبع حالياً ما يلي لأمر `remote`:```text
Remote scanning not fully implemented in this snippet. Use 'local' or 'exploit'.
استعد تنفيذًا كاملًا لـ run_remote() قبل الإعلان عن أن الفحص عن بُعد بالجملة أصبح وظيفيًا.
يقرأ أمر local ما يلي:```text
/wp-includes/version.php
ويستخرج `$wp_version`.
## الاستخدام الأساسي```bash
python3 WP2Shell_CVE-2026-63030_POC.py local \
--wordpress-root /var/www/html
python3 WP2Shell_CVE-2026-63030_POC.py local
--wordpress-root /var/www/html
--format json
--output local-result.json
## تثبيت WordPress باستخدام Docker
عندما يكون اسم حاوية WordPress هو `wordpress`، انسخ شجرة المصدر إلى المضيف أو قم بتركيبها عليه، أو قم بتشغيل فحص الإصدار داخل الحاوية:```bash
docker compose exec wordpress php -r \
'require "/var/www/html/wp-includes/version.php"; echo $wp_version, PHP_EOL;'
استخدم compose.yaml المقدم لتشغيل مختبر محلي مؤقت مرتبط بـ 127.0.0.1:8080:```bash
docker compose up -d
بمجرد اكتمال إعداد WordPress لأول مرة في المتصفح على `http://127.0.0.1:8080`، يمكنك تشغيل:```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
--authorized \
--target http://127.0.0.1:8080 \
--active-probe \
--format json
لإيقاف المختبر وإزالته:```bash docker compose down -v
## خيارات الأوامر المحلية
| الخيار | الوصف |
|---|---|
| `--wordpress-root PATH` | الدليل المطلوب الذي يحتوي على `wp-includes/version.php` |
| `-f, --format` | `table`، `json`، `jsonl`، أو `csv` |
| `-o, --output FILE` | اكتب التقرير إلى ملف |
| `--fail-on` | سياسة رمز الخروج: `never`، `vulnerable`، أو `unknown` |
## مثال على مخرجات النسخة الضعيفة```json
[
{
"selected_version": "7.0.1",
"version_assessment": "affected-wp2shell",
"verdict": "CONFIRMED_AFFECTED_VERSION",
"severity": "critical"
}
]
تؤكد نتيجة فحص الإصدار المحلي أن الإصدار المثبّت يقع ضمن النطاق المتأثر المنشور. وهي وحدها لا تُثبت قابلية الاستغلال وقت التشغيل أو أثر التصحيح المُرتجَع.
يدعم محلل remote الوسائط التالية، لكن تنفيذ run_remote() المقدَّم غير مكتمل حاليًا.
الواجهة المتوقعة بعد استعادة run_remote():```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote
--authorized
--target https://wordpress.example
--active-probe
## أهداف صريحة متعددة```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
--authorized \
--target https://site-one.example \
--target https://site-two.example \
--active-probe
أنشئ targets.txt:```text
https://site-one.example/
https://site-two.example/blog/
الواجهة المتوقعة:```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
--authorized \
--targets-file targets.txt \
--active-probe \
--format jsonl \
--output results.jsonl
cat targets.txt | python3 WP2Shell_CVE-2026-63030_POC.py remote
--authorized
--stdin
## استخدام البروكسي```bash
python3 WP2Shell_CVE-2026-63030_POC.py remote \
--authorized \
--target https://wordpress.example \
--active-probe \
--proxy http://127.0.0.1:8081
python3 WP2Shell_CVE-2026-63030_POC.py remote
--authorized
--target https://wordpress.example
--header 'Authorization: Bearer TEST_TOKEN'
## خيارات عن بُعد
| الخيار | الغرض |
|---|---|
| `-u, --target URL` | عنوان الهدف؛ قابل للتكرار |
| `-l, --targets-file FILE` | هدف واحد في كل سطر؛ قابل للتكرار |
| `--stdin` | قراءة الأهداف من الإدخال القياسي |
| `--authorized` | إقرار التفويض المطلوب |
| `--default-scheme` | المخطط المطبَّق عند الحذف |
| `-c, --concurrency` | عدد العمال المتوازيين للأهداف |
| `--rate` | معدل الطلبات الإجمالي |
| `--timeout` | مهلة زمنية لكل طلب |
| `--retries` | عدد مرات إعادة المحاولة |
| `--max-targets` | الحد الأقصى لعدد الأهداف المقبولة |
| `--max-body-bytes` | أقصى حجم محتفظ به لجسم الاستجابة |
| `-k, --insecure` | تعطيل التحقق من TLS |
| `--no-redirects` | تعطيل عمليات إعادة التوجيه |
| `--allow-cross-host-redirects` | السماح بإعادة التوجيه إلى مضيف آخر |
| `--proxy` | وكيل HTTP/HTTPS |
| `-H, --header` | ترويسة مخصصة؛ قابلة للتكرار |
| `--user-agent` | تجاوز وكيل المستخدم |
| `--fingerprint-level` | `quick` أو `standard` أو `extended` |
| `--active-probe` | إرسال استقصاء الالتباس الآمن للمسار |
| `--rest-endpoint` | `query` أو `pretty` أو `both` |
| `--include-request-log` | إضافة بيانات وصفية لعنوان URL والحالة والتوقيت |
| `-f, --format` | `table` أو `json` أو `jsonl` أو `csv` |
| `-o, --output` | كتابة المخرجات إلى ملف |
| `--fail-on` | سياسة رمز الخروج |
---
# التحقق الآمن في وقت التشغيل
للتحقق المحلي غير التدميري لكلتا البدائيتين، استخدم مدققًا مخصصًا يعمل على:
- يرفض المضيفات غير الاسترجاعية (loopback).
- يؤكد حدوث الالتباس في المسار أولاً.
- يشغّل عينات التوقيت ذات الشرط الثابت فقط بعد نجاح الالتباس في المسار.
- لا يستخرج البيانات ولا ينفّذ الأوامر.
مثال على سير العمل:```bash
python3 wp2shell_local_validator.py check \
--authorized \
--target http://127.0.0.1:8080 \
--sqli \
--delay 2 \
--samples 4 \
--warmups 2 \
--debug \
--dump-dir evidence \
--output result.json
نمط التوقيت المتوقع لمختبر الثغرات:```text False controls: approximately 0.03–0.10 seconds True tests: consistently delayed
الحكم المتوقع:```text
FULL_VULNERABILITY_PRIMITIVES_CONFIRMED
يمكن لاختبار التوقيت تنفيذ تعبير التأخير أكثر من مرة، لذلك قد ينتج عن التأخير المضبوط بثانيتين تأخير ملحوظ يقارب أربع ثوانٍ. الإشارة المهمة هي الفصل المتكرر بين الشرطين الصحيح والخاطئ.
الأفضل للاستخدام في الطرفية التفاعلية:```bash --format table
### JSON
الأفضل للأدلة والتكامل:```bash
--format json --output result.json
الأفضل لمجموعات الأهداف الكبيرة:```bash --format jsonl --output results.jsonl
### CSV
الأفضل لجداول البيانات والتقارير:```bash
--format csv --output results.csv
يستخدم الماسح الضوئي أكواد خروج تعتمد على السياسة.
لذلك يمكن لنتيجة اكتشاف ثغرة أن تُرجع حالة خروج غير صفرية عن قصد.
مثال:```bash
python3 WP2Shell_CVE-2026-63030_POC.py local
--wordpress-root /var/www/html
--fail-on vulnerable
echo $?
---
## اختبار الفرق بين البيئة القابلة للاستغلال والبيئة المُصلَحة
التحقق القوي يقارن بين بيئتين نظيفتين.
### البيئة القابلة للاستغلال```text
WordPress 7.0.1
المتوقع:```text route-confusion-observed repeatable true/false SQL timing difference
### البيئة الثابتة```text
WordPress 7.0.2
المتوقع:```text route-confusion-not-observed SQLi timing test not reached or no valid timing oracle
أعد دائمًا إنشاء وحدة تخزين WordPress عند تغيير الإصدارات. يمكن أن تؤدي إعادة استخدام وحدة التخزين إلى الاحتفاظ بالملفات الأساسية القديمة أو المحدَّثة تلقائيًا.```bash
docker compose down -v
docker compose pull
docker compose up -d
قم بالتحديث فورًا إلى أحد الإصدارات المُصحَّحة أو إلى إصدار مدعوم لاحق:
يجب أن تغطي الضوابط المؤقتة كلا شكلي نقطة النهاية الدفعية:```text /wp-json/batch/v1 /?rest_route=/batch/v1
إجراءات دفاعية إضافية:
1. راجع السجلات بحثًا عن طلبات مجمعة مجهولة، وعناوين URL داخلية مشوّهة، وبنى مجمعة متداخلة، وقيم `author_exclude` غير معتادة.
2. راجع حسابات المسؤولين، وتغييرات الإضافات، وملفات PHP غير المتوقعة، والوصول إلى قاعدة البيانات بعد أي فترة تعرّض.
3. تحقق من المجاميع الاختبارية (checksums) لنواة ووردبريس واستعد من نسخة احتياطية سليمة معروفة إذا كان هناك اشتباه في الاختراق.
4. قم بتدوير الأسرار وبيانات الاعتماد المخزنة في قاعدة بيانات ووردبريس عندما قد يكون استغلال حقن SQL قد حدث.
حظر نقطة النهاية هو إجراء تخفيفي مؤقت، وليس بديلاً عن تحديث نواة ووردبريس.
---
## أفكار الكشف
تتضمن المؤشرات المحتملة:
- طلبات `POST` مجهولة إلى أي من صيغتي نقطة نهاية الدفعة.
- استجابات HTTP `207` تحتوي على مصفوفات `responses` متداخلة.
- عناوين URL داخلية مشوّهة في هيئات الطلبات المجمعة.
- كائنات `requests` متداخلة داخل عضو دفعة آخر.
- قيم `author_exclude` عددية أو ذات شكل SQL.
- طلبات مقترنة متكررة مع استجابات متناوبة بين السريعة والمتأخرة.
- إنشاء غير متوقع لمسؤول ووردبريس.
- تثبيت أو تفعيل إضافات غير متوقع.
- ملفات PHP جديدة ضمن أدلة ووردبريس القابلة للكتابة.
- استعلامات قاعدة بيانات تحتوي على تعبيرات `author__not_in` غير معتادة.
---
## القيود المعروفة في السكريبت المرفق
- التعامل مع ملفات تعريف الارتباط (Cookies) ليس مكافئًا لجلسة متصفح دائمة.
- بادئات جداول قاعدة البيانات مفترضة في بعض مسارات الكود.
- امتياز `FILE` في قاعدة البيانات ومسارات نظام الملفات يختلفان حسب بيئة النشر.
- `INTO OUTFILE` عادةً ما يكون مقيدًا ولا يمكنه استبدال الملفات الموجودة.
- قد يعطل ووردبريس تثبيت الإضافات عبر `DISALLOW_FILE_MODS`.
- يمكن أن تتأثر عتبات التوقيت بالبروكسيات، وجدران حماية تطبيقات الويب (WAFs)، ومهلات PHP، ومهلات قاعدة البيانات، والحمولة.
- يمكن إخفاء سلاسل الإصدارات أو تزييفها أو تخزينها مؤقتًا أو أن تكون غير متناسقة.
- رصد إصدار متأثر لا يثبت غياب التحديث الأمني الخلفي (backport).
- غياب إشارة التوقيت لا يثبت أن الخادم محدث.
---
## المراجع
- الإصدار الأمني ووردبريس 7.0.2:
https://wordpress.org/news/2026/07/wordpress-7-0-2-release/
- توثيق ووردبريس 7.0.2 والملفات المُغيَّرة:
https://wordpress.org/documentation/wordpress-version/version-7-0-2/
- NVD — CVE-2026-63030:
https://nvd.nist.gov/vuln/detail/CVE-2026-63030
- NVD — CVE-2026-60137:
https://nvd.nist.gov/vuln/detail/CVE-2026-60137
- أرشيف إصدارات ووردبريس:
https://wordpress.org/download/releases/
---
## الاستخدام القانوني والأخلاقي
استخدم هذا المشروع فقط عندما:
- تمتلك النظام، أو
- لديك إذن كتابي صريح، و
- يكون نشاط الاختبار المطلوب ضمن النطاق المتفق عليه.
لا تعرّض تثبيتات ووردبريس المعرَّضة للثغرات عمدًا إلى الإنترنت العام. استخدم بيانات اعتماد قابلة للتخلص، وبيانات اصطناعية، وشبكات معزولة، ولقطات نظام نظيفة. قم بتدمير المختبر أو إعادة تعيينه بعد الاختبار.
الدليل الأكثر أمانًا على وجود الثغرة هو الحد الأدنى من الأدلة اللازمة لإظهار المشكلة:```text
Affected version
+
Route-confusion behavior
+
Repeatable constant-condition SQL timing oracle
سرقة بيانات الاعتماد، والاستمرارية، وتثبيت webshell، وتنفيذ الأوامر ليست ضرورية لتأكيد وجود الثغرة.
| فرع ووردبريس | المتأثر | الإصدار المُصحَّح |
|---|
| 6.8.x | CVE-2026-60137 فقط: 6.8.0–6.8.5 | 6.8.6 |
| 6.9.x | كلتا الثغرتين: 6.9.0–6.9.4 | 6.9.5 |
| 7.0.x | كلتا الثغرتين: 7.0.0–7.0.1 | 7.0.2 |
| 7.1 إصدار تجريبي | Beta 1 متأثر | Beta 2 |
| أقدم من 6.8 | غير متأثر بهاتين الثغرتين | N/A |
| الحكم | المعنى |
|---|
CONFIRMED_VULNERABLE_BEHAVIOR | تمت ملاحظة سلوك الالتباس في التوجيه وقت التشغيل |
CONFIRMED_AFFECTED_VERSION | إصدار المصدر المحلي يقع ضمن نطاق متأثر |
LIKELY_VULNERABLE | دليل الإصدار البعيد يشير إلى إصدار متأثر |
VULNERABLE_SQLI_ONLY | الإصدار متأثر بـ CVE-2026-60137 لكنه خارج نطاق الالتباس الكامل في التوجيه |
AFFECTED_VERSION_BUT_BEHAVIOR_NOT_OBSERVED | تم اكتشاف إصدار متأثر، لكن سلوك وقت التشغيل الآمن كان غائبًا |
PATCHED_VERSION | الإصدار يستوفي حدّ الإصلاح المنشور |
NOT_AFFECTED | الإصدار خارج الفرع المتأثر |
POTENTIALLY_EXPOSED_VERSION_UNKNOWN | تم العثور على ووردبريس ومسار الدفعة، لكن الإصدار مخفي |
WORDPRESS_VERSION_UNKNOWN | تم اكتشاف ووردبريس دون دليل موثوق على الإصدار |
ERROR | تعذّر تقييم الهدف |
NOT_WORDPRESS_OR_NOT_DETECTED | لا يوجد دليل موثوق على ووردبريس |
| الرمز | المعنى |
|---|
0 | لا توجد نتيجة تستدعي تفعيل السياسة، أو --fail-on never |
2 | نتيجة ثغرة أو تأثر ضمن السياسة الافتراضية |
3 | نتيجة غير معروفة أو غير حاسمة عند تحديد --fail-on unknown |
1 | خطأ في الوسائط أو المدخلات أو أمر غير مكتمل |