حديقة HTTP
إن HTTP Garden عبارة عن مجموعة من خوادم HTTP والوكلاء التي تم تكوينها لتكون قابلة للتركيب، بالإضافة إلى البرامج النصية للتفاعل معها بطريقة تجعل العثور على الثغرات الأمنية أسهل بكثير. للحصول على بعض العروض التوضيحية الرائعة حول الثغرات الأمنية التي يمكنك العثور عليها باستخدام HTTP Garden، تحقق من حديثنا في ShmooCon 2024.
شكر وتقدير
نود أن نشكر أصدقائنا في Galois وTrail of Bits وNarf Industries وكلية Dartmouth على جعل هذا المشروع ممكنًا.
تعتمد هذه المادة على العمل الذي تدعمه وكالة مشاريع الأبحاث الدفاعية المتقدمة (DARPA) بموجب العقد رقم HR0011-19-C-0076.
ابدء
التبعيات
- يعمل HTTP Garden على نظام التشغيل x86_64 Linux، ولم يتم اختباره على الأنظمة الأساسية الأخرى.
- يتم إنشاء الخوادم المستهدفة وتشغيلها في حاويات Docker، لذا ستحتاج إلى Docker.
- ستحتاج أيضًا إلى حزم Python التالية، والتي يمكنك الحصول عليها من PyPI (أي مع
pip
) أو من مدير حزم النظام لديك:
إذا كنت تقوم بتثبيت حزم Python باستخدام مدير حزم النظام لديك، فاعلم أن أسماء الحزم قد تحتاج إلى أن تكون مسبوقة بـ py3-
أو python3-
أو python-
، اعتمادًا على النظام.
- كما أوصي بشدة بتثبيت rlwrap من مدير الحزم لديك، لأنه يجعل Garden repl أكثر متعة.
مبنى
docker build ./images/http-garden-soil -t http-garden-soil
تحتوي هذه الصورة على بعض الأدوات المساعدة الأساسية، بالإضافة إلى AFL++ المتشعب الذي يسهل جمع التغطية من العمليات دون قتلها.
- إنشاء بعض خوادم ووكلاء HTTP:
docker compose build gunicorn hyper nginx haproxy nginx_proxy
هناك، بالطبع، أهداف في حديقة HTTP أكثر بكثير من تلك التي أنشأناها للتو. إن الأمر مجرد أن بنائها جميعًا يستغرق وقتًا طويلاً. حتى بناء هذه القلة سيستغرق بضع دقائق!
جري
- بدء تشغيل بعض الخوادم والوكلاء:
docker compose up gunicorn hyper nginx haproxy nginx_proxy
rlwrap python3 tools/repl.py
- قم بتصفية طلب GET الأساسي من خلال HAProxy، ثم من خلال وكيل Nginx العكسي، ثم أرسل النتيجة إلى خوادم Gunicorn وHyper وNginx الأصلية، واعرض ما إذا كانت تفسيراتها متطابقة:
garden> payload 'GET / HTTP/1.1rnHost: whateverrnrn' # Set the payload
garden> transduce haproxy nginx_proxy # Run the payload through the reverse proxies
[1]: 'GET / HTTP/1.1rnHost: whateverrnrn'
haproxy
[2]: 'GET / HTTP/1.1rnhost: whateverrnrn'
nginx_proxy
[3]: 'GET / HTTP/1.1rnHost: echornConnection: closernrn'
garden> servers gunicorn hyper nginx # Select the servers
garden> grid # Show their interpretations
g
u
n
i h n
c y g
o p i
r e n
n r x
+-----
gunicorn|✓ ✓ ✓
hyper | ✓ ✓
nginx | ✓
ويبدو أنهم جميعا متفقون. دعونا نجرب حمولة أكثر إثارة للاهتمام:
garden> payload 'POST / HTTP/1.1rnHost: arnTransfer-Encoding: chunkedrnrn0nrn'
garden> grid
g
u
n
i h n
c y g
o p i
r e n
n r x
+-----
gunicorn|✓ ✓ X
hyper | ✓ X
nginx | ✓
هناك تناقض! وذلك لأن Nginx يدعم n
كسطر ينتهي بأسطر مقطعة، لكن Hyper وGunicorn لا يدعمان ذلك. ينتهك Nginx تقنيًا RFC 9112 هنا، ولكن من المحتمل أن يكون التأثير ضئيلًا.
تخطيط الدليل
images
يحتوي دليل images
على دليل فرعي لكل خادم HTTP ومحول الطاقة في الحديقة. يحصل كل هدف على صورة Docker الخاصة به. يتم إنشاء جميع البرامج من المصدر عندما يكون ذلك ممكنًا. حتى نتمكن من إنشاء إصدارات متعددة من كل هدف بسهولة، يتم قياس جميع الأهداف باستخدام عنوان URL للمستودع ( APP_REPO
)، واسم الفرع ( APP_BRANCH
)، وتجزئة الالتزام ( APP_VERSION
).
tools
يحتوي دليل tools
على البرامج النصية المستخدمة للتفاعل مع الخوادم. بداخله ستجد
-
diagnose_anomalies.py
: برنامج نصي لتعداد مراوغات تحليل HTTP الحميدة في الأنظمة قيد الاختبار والتي سيتم تجاهلها أثناء التشويش، -
repl.py
: واجهة المستخدم الأساسية لحديقة HTTP، -
update.py
: برنامج نصي يقوم بتحديث تجزئات الالتزام في docker-compose.yml
، - ...وعدد قليل من البرامج النصية التي لا تواجه المستخدم.
الأهداف
خوادم HTTP
اسم | يعمل محليا؟ | التغطية المجمعة؟ |
---|
aiohttp | نعم | نعم |
apache_httpd | نعم | نعم |
apache_tomcat | نعم | لا |
com.cherot | نعم | نعم |
cpp_httplib | نعم | لا |
dart_stdlib | نعم | لا |
Eclipse_grizzly | نعم | لا |
Eclipse_jetty | نعم | لا |
fasthttp | نعم | لا |
go_stdlib | نعم | لا |
gunicorn | نعم | نعم |
ماء | نعم | نعم |
haproxy_fcgi | نعم | لا |
فرط | نعم | لا |
هايبركورن | نعم | نعم |
ktor | نعم | لا |
ليبفينت | نعم | لا |
libmicrohttpd | نعم | لا |
libsoup | نعم | لا |
com.lighttpd | نعم | نعم |
النمس | نعم | نعم |
netty | نعم | لا |
nginx | نعم | نعم |
node_stdlib | نعم | لا |
com.openlitespeed | نعم | لا |
openwrt_uhttpd | نعم | نعم |
php_stdlib | نعم | لا |
phusion_passenger | نعم | لا |
Protocol_http1 | نعم | لا |
بوما | نعم | لا |
com.servicetalk | نعم | لا |
اعصار | نعم | لا |
ملتوية | نعم | لا |
يونيكورن | نعم | لا |
uvicorn | نعم | نعم |
نادلة | نعم | نعم |
webrick | نعم | لا |
iis | لا | لا |
openbsd_httpd | لا | لا |
محولات HTTP
اسم | يعمل محليا؟ |
---|
apache_httpd_proxy | نعم |
apache_traffic_server | نعم |
go_stdlib_proxy | نعم |
h2o_proxy | نعم |
haproxy | نعم |
haproxy_invalid | نعم |
lighttpd_proxy | نعم |
nghttpx | نعم |
nginx_proxy | نعم |
openlitespeed_proxy | نعم |
بينجورا | نعم |
جنيه | نعم |
الحبار | نعم |
ورنيش | نعم |
أكاماي | لا |
awselb_classic | لا |
awselb_application | لا |
aws_cloudfront | لا |
com.cloudflare | لا |
بسرعة | لا |
google_classic | لا |
google_global | لا |
iis_proxy | لا |
openbsd_relayd | لا |
البق
هذه هي الأخطاء التي اكتشفناها باستخدام HTTP Garden. إذا وجدت بعضًا منها، فيرجى إرسال تقرير علاقات عامة لإضافتها إلى هذه القائمة! يتم وصف كل خطأ في الحقول التالية:
- حالة الاستخدام: نوع الهجوم الذي يمكن للمهاجم تنفيذه باستخدام هذا الخطأ
- المتطلبات: خيارات التكوين المطلوبة أو الخوادم الأخرى حتى يتم استغلال هذا الخطأ.
- المخاطر: لا شيء|منخفض|متوسط|عالي، متبوعًا بشرح قصير.
- لا شيء: من المحتمل أن يكون الخطأ غير قابل للاستغلال.
- منخفض: قد يكون الخطأ قابلاً للاستغلال، ولكنه يتطلب تكوينًا غريبًا حقًا أو قد يعتمد على الوكيل الذي يتصرف بطريقة لم أرها من قبل.
- متوسط: من المحتمل أن يكون الخطأ قابلاً للاستغلال، ولكن له تأثير معتدل فقط أو يتطلب مجموعة غير محتملة من الخادم/محول الطاقة.
- عالي: يمكن استغلال الخطأ في التكوينات الشائعة ومجموعات الخادم/محول الطاقة.
- الحمولة: مثال للحمولة التي تؤدي إلى حدوث الخطأ
- البرامج المتأثرة: قائمة بالخوادم التي يوجد بها هذا الخطأ، بالإضافة إلى الجداول الزمنية للتقرير والتصحيح. نظرًا لأن بعض أخطاء التنفيذ شائعة، وهذا يمنعها من ازدحام القائمة :)
أخطاء الخادم
هذه أخطاء في الطريقة التي تقبل بها الخوادم الطلبات وتفسرها.
- يتم استخدام مُنشئ Python
int
لتحليل أحجام القطع، لذلك يتم تفسير 0x
و _
و +
و -
بشكل خاطئ.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يفسر أحجام القطع على أنها أطول بادئة صالحة، ولكنه يعيد توجيهها كما هي.
- المخاطر: متوسطة. انظر خطأ محول الطاقة 7.
- الحمولة:
GET / HTTP/1.1rnHost: arnTransfer-Encoding: chunkedrnrn0_2ernrnGET / HTTP/1.1rnHost: arnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- أيوتب:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 7 أكتوبر 2023: تم إصلاحه في الإصدار 3.8.6.
- جونيكورن:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر إصدار GH.
- 25 ديسمبر 2023: تم الإصلاح في الالتزام.
- اعصار:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 10 أغسطس 2023: تم الإصلاح في الالتزام.
- يُسمح بـ
x00
أو r
أو n
بشكل غير صحيح في قيم الرأس.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه هذه البايتات في قيم الرأس، أو يقبل ويعيد توجيه
n
كنقطة نهاية لخط الرأس. - المخاطر: عالية. راجع أخطاء محول الطاقة 10 و12 و16.
- الحمولة:
GET / HTTP/1.1rnHost: arnHeader: vnx00raluernrn
- البرامج المتأثرة:
- أيوتب:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 7 أكتوبر 2023: تم إصلاحه في الإصدار 3.8.6.
- جونيكورن:
- 31 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه.
- اعصار:
- 11 أغسطس 2023: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه.
- يتم تجريد المسافة البيضاء بشكل غير صحيح من نهايات أسماء الرؤوس.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يعتبر المسافة البيضاء قبل
:
جزءًا من اسم الرأس. - المخاطر: منخفضة. لست على علم بوجود أي محولات طاقة ضعيفة، لكن جيمس كيتل يقول أن هناك واحدًا على الأقل موجودًا.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnContent-Length : 34rnrnGET / HTTP/1.1rnHost: whateverrnrn
- البرامج المتأثرة:
- أيوتب:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 7 أكتوبر 2023: تم إصلاحه في الإصدار 3.8.6.
- شيروت:
- 4 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 4 فبراير 2024: لم يتم إصلاحه.
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- 14 أغسطس 2023: تم تعيينه CVE-2023-40518.
- تم تجريد المسافة البيضاء بشكل غير صحيح من بداية اسم الرأس الأول.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يعتبر المسافة البيضاء في بداية اسم الرأس الأول جزءًا من اسم الرأس.
- المخاطر: منخفضة. لست على علم بأي محولات طاقة ضعيفة.
- الحمولة:
GET / HTTP/1.1rntContent-Length: 1rnrnX
- البرامج المتأثرة:
- أيوتب:
- 20 أغسطس 2023: تم الإبلاغ عن ذلك عبر تعليق استشاري أمني لشركة GH.
- 7 أكتوبر 2023: تم إصلاحه في الإصدار 3.8.6.
- يتم تفسير إصدارات HTTP على أنها أطول بادئة صالحة.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET /test HTTP/1.32rnrn
- البرامج المتأثرة:
- أيوتب:
- 14 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH والعلاقات العامة.
- 15 أكتوبر 2023: تم الإصلاح في الالتزام.
- يتم تفسير أساليب HTTP على أنها أطول بادئة صالحة.
- حالة الاستخدام: تجاوز ACL
- المتطلبات: محول طاقة يقوم بإعادة توجيه أسماء الطرق غير الصالحة كما هي.
- المخاطر: متوسطة. تم حذف الشرح لأنه لم يتم الإبلاغ عن الأخطاء المقابلة بعد.
- الحمولة:
G=":<>(e),[T];?" /get HTTP/1.1rnrn
- البرامج المتأثرة:
- أيوتب:
- 14 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH والعلاقات العامة.
- 15 أكتوبر 2023: تم الإصلاح في الالتزام.
- لا يتم التحقق من صحة عناوين URI على الإطلاق.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET ! HTTP/1.1rnrn
- البرامج المتأثرة:
- أيوتب:
- 16 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 16 أكتوبر 2023: تم إصلاحه في العلاقات العامة.
- يُسمح ببعض وحدات البايت غير ASCII بشكل غير صحيح في أسماء الرؤوس.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET / HTTP/1.1rnxefoo: barrnrn
- البرامج المتأثرة:
- أيوتب:
- 17 أكتوبر 2023: تم الإبلاغ عنه عبر العلاقات العامة.
- 18 أكتوبر 2023: تم الإصلاح عبر دمج العلاقات العامة أعلاه.
- دافني:
- 4 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 10 فبراير 2024: تم الإصلاح في الالتزام.
- النمس:
- 13 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 5 ديسمبر 2023: تم الإصلاح في الالتزام.
-
n
مسموح به كمسافات بيضاء منفصلة في سطر الطلب.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه طلبات HTTP/0.9 بدون
n
كما هو، ويعيد استخدام الاتصال الأساسي. - المخاطر: منخفضة. لست على علم بأي محولات طاقة ضعيفة.
- الحمولة:
GET /nHTTP/1.1rnrn
- البرامج المتأثرة:
- أيوتب:
- 17 أكتوبر 2023: تم الإبلاغ عنه عبر العلاقات العامة.
- 18 أكتوبر 2023: تم الإصلاح عن طريق الدمج.
- يتم استخدام مُنشئ Python
int
لتحليل قيم Content-Length
، لذلك يتم تفسير _
و +
و -
بشكل خاطئ.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يفسر قيم
Content-Length
على أنها أطول بادئة صالحة، ولكنه يعيد توجيهها كما هي. - المخاطر: منخفضة. لست على علم بوجود أي محولات طاقة ضعيفة، لكن مات جرينفيلدت يقول أن واحدًا على الأقل موجود.
- الحمولة:
GET / HTTP/1.1rnHost: arnContent-Length: +1_0rnrn0123456789
- البرامج المتأثرة:
- أيوتب:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 7 أكتوبر 2023: تم إصلاحه في الإصدار 3.8.6.
- خادم سي بايثون http.server:
- 2 أبريل 2023: تم الإبلاغ عنه عبر إصدار GH.
- 2 أبريل 2023: تم الإصلاح في الالتزام.
- اعصار:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 10 أغسطس 2023: تم الإصلاح في الالتزام.
- ويركزيوغ:
- 1 يونيو 2023: تم الإبلاغ عنه عبر إصدار GH.
- 7 يونيو 2023: تم الإصلاح في الالتزام 88c5c78.
- الطلبات التي تحتوي على
Transfer-Encoding: chunked
ومعاملتها على أنها لا تحتوي على نص للرسالة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول يقوم بإعادة توجيه الطلبات التي تحتوي على رؤوس متعددة
Transfer-Encoding
. - المخاطر: عالية. انظر علة محول الطاقة 28.
- الحمولة:
POST / HTTP/1.1rnTransfer-Encoding: chunkedrnTransfer-Encoding: chunkedrnrn1rnZrn0rnrn
- البرامج المتأثرة:
- اعصار:
- 7 أكتوبر 2023: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 6 يونيو 2024: تم إصلاح المشكلة في إصدار الاستشارات الأمنية.
- يتم تجريد
xa0
و x85
من بدايات ونهايات قيم الرأس.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه قيم
Transfer-Encoding
غير المعروفة ويعاملها على أنها مختلفة عن chunked
. - المخاطر: متوسطة. انظر خطأ محول الطاقة 18.
- الحمولة:
POST / HTTP/1.1rnHost: whateverrnTransfer-Encoding: xa0chunkedxa0rnrn0rnrn
- البرامج المتأثرة:
- اعصار:
- 4 فبراير 2024: تم الإبلاغ عن ذلك عبر تعليق استشاري أمني لشركة GH.
- 4 فبراير 2024: لم يتم إصلاحه.
- يتم التعامل مع
r
كخط فاصل في خطوط حقل الرأس.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه
r
في أسماء الرؤوس. - المخاطر: عالية. انظر علة محول الطاقة 10.
- الحمولة:
GET / HTTP/1.1rnVisible: :/rSmuggled: :)rnrn
- البرامج المتأثرة:
- خادم سي بايثون http.server:
- 31 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه.
- النمس:
- 7 يوليو 2023: تم الإبلاغ عنه عبر إصدار GH.
- 9 يوليو 2023: تم الإصلاح في الالتزام 6957c37.
- أحرف ASCII غير المسموح بها مسموح بها بشكل غير صحيح في أسماء الرؤوس.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET / HTTP/1.1rnx00x01x02x03x04x05x06x07x08tx0bx0cx0ex0fx10x11x12x13x14x15x16x17x18x19x1ax1bx1cx1dx1ex1f "(),/;<=>?@[/]{}: whateverrnrn
- البرامج المتأثرة:
- دافني:
- 4 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 10 فبراير 2024: تم الإصلاح في الالتزام.
- النمس:
- 13 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 5 ديسمبر 2023: تم الإصلاح في الالتزام.
- اعصار:
- 11 أغسطس 2023: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه. أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- لم يتم التحقق من صحة إصدارات HTTP.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET / HTTP/rr1.1rnrn
- البرامج المتأثرة:
- سريعHTTP:
- 4 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 11 فبراير 2024: تم الإصلاح في الالتزام.
- يتم التعامل مع قيم
Content-Length
الفارغة كما لو كانت 0
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يفسر قيم
Content-Length
الفارغة على أنها أي شيء آخر غير 0. - المخاطر: منخفضة. لست على علم بأي محول من هذا القبيل.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnContent-Length: rnrn
- البرامج المتأثرة:
- الذهاب صافي/http:
- 31 يوليو 2023: تم الإبلاغ عنه عبر إصدار GH
- 11 أغسطس 2023: تم الإصلاح في الالتزام.
- لايتبد:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر أداة تتبع المشكلات.
- 3 أغسطس 2023: تم الإصلاح في الالتزام.
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- يتم التعامل مع أحجام القطع الفارغة كما لو كانت
0
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل ويعيد توجيه
rn
s الإضافية بين القطع. - المخاطر: منخفضة. لست على علم بأي محول من هذا القبيل.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnTransfer-Encoding: chunkedrnrnrnrn
- البرامج المتأثرة:
- الذهاب صافي/http:
- 2 ديسمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 4 يناير 2024: تم الإصلاح في الالتزام.
- فرط:
- 1 ديسمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 18 ديسمبر 2023: تم الإصلاح في الالتزام.
- النمس:
- 3 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 3 يناير 2024: تم إصلاحه في العلاقات العامة.
- يتم قبول أسماء الرؤوس الفارغة بشكل خاطئ.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل
rn:rn
ويعيد توجيهه، ويعامله على أنه نهاية كتلة الرأس. - المخاطر: منخفضة. لست على علم بأي محول من هذا القبيل.
- الحمولة:
GET / HTTP/1.1rn: ignoredrnHost: whateverrnrn
- البرامج المتأثرة:
- الذهاب صافي/http:
- 24 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 30 يناير 2024: تم الإصلاح في الالتزام.
- جونيكورن:
- 4 ديسمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 25 ديسمبر 2023: تم الإصلاح في الالتزام.
- نود.جي إس:
- 13 أكتوبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 17 أكتوبر 2023: تم الإصلاح في الالتزام.
- اعصار:
- 13 أكتوبر 2023: تم الإبلاغ عنه عبر تعليق إصدار GH.
- 15 أكتوبر 2023: لم يتم إصلاحه.
- يتم تجريد كافة التسلسلات غير
rn
ذات المسافات البيضاء من بدايات قيم الرأس (بعد :
).
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل ويعيد توجيه نهايات الخطوط
n
العارية في خطوط المجال. - المخاطر: متوسطة. انظر علة محول الطاقة 16.
- الحمولة:
GET / HTTP/1.1rnHost: arnUseless:nnGET / HTTP/1.1rnrn
- البرامج المتأثرة:
- جونيكورن:
- 2 يونيو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 31 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه.
- يتم تجريد
xa0
و x85
بايت من نهايات أسماء الرؤوس، قبل :
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل ويعيد توجيه
xa0
أو x85
في أسماء الرؤوس. - المخاطر: متوسطة. انظر علة محول الطاقة 6.
- الحمولة:
GET / HTTP/1.1rnHost: arnContent-Lengthx85: 10rnrn0123456789
- البرامج المتأثرة:
- جونيكورن:
- 27 يونيو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 25 ديسمبر 2023: تم الإصلاح في الالتزام.
-
,chunked
على أنه ترميز مختلف عن chunked
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه قيمة
Transfer-Encoding
,chunked
كما هي، ويفسرها على أنها مكافئة للقيمة chunked
. - المخاطر: عالية. انظر علة محول الطاقة 9.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnTransfer-Encoding: ,chunkedrnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- جونيكورن:
- 6 نوفمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 25 ديسمبر 2023: تم الإصلاح في الالتزام.
- النمس:
- 6 نوفمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 1 ديسمبر 2023: تم الإصلاح في الالتزام.
- راكب:
- 6 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 22 يناير 2024: تم إصلاحه في الإصدار.
- يتم تفسير أحجام القطع غير الصالحة على أنها أطول بادئة صالحة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل ويعيد توجيه أحجام القطع ذات البادئة غير الصحيحة (على سبيل المثال مع البادئة
0x
). - المخاطر: عالية. انظر أخطاء محول الطاقة 2 و19.
- الحمولة:
GET / HTTP/1.1rnHost: arnTransfer-Encoding: chunkedrnrn0_2ernrnGET / HTTP/1.1rnHost: arnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- ماء:
- 1 أغسطس 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 12 ديسمبر 2023: تم إصلاحه في العلاقات العامة.
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- ويب:
- 9 نوفمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 3 فبراير 2024: تم إصلاحه في العلاقات العامة.
- يتم قبول الطلبات التي تحتوي على عدة رؤوس متعارضة
Content-Length
، مع إعطاء الأولوية للأول.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل الطلبات ويعيد توجيهها باستخدام رأسين
Content-Length
، مع إعطاء الأولوية للأخير. - المخاطر: متوسطة. انظر علة محول الطاقة 22.
- الحمولة:
GET / HTTP/1.1rnHost: arnContent-Length: 1rnContent-Length: 0rnrnZ
- البرامج المتأثرة:
- ماء:
- 30 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: تم الإبلاغ عنه عبر إصدار GH.
- 10 يوليو 2024: لم يتم إصلاحه.
- أوبن لايت سبيد:
- 26 يونيو 2024: تم الإبلاغ عنه عبر إصدار GH.
- 10 يوليو 2024: لم يتم إصلاحه.
- تجاوز عدد صحيح 8 بت في أرقام إصدارات HTTP.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء
- الحمولة:
GET / HTTP/4294967295.255rnrn
- البرامج المتأثرة:
- ليبفينت:
- 17 يناير 2024: تم تقديم العلاقات العامة.
- 18 يناير 2024: تم إصلاحه أثناء الدمج.
- يتم تحليل أحجام القطع باستخدام
strtoll(,,16)
، لذلك يتم قبول البادئات 0x
و +
و -
بشكل خاطئ.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يفسر أحجام القطع على أنها أطول بادئة صالحة، ولكنه يعيد توجيهها كما هي.
- المخاطر: متوسطة. انظر خطأ محول الطاقة 2.
- الحمولة:
GET / HTTP/1.1rnTransfer-Encoding: chunkedrnrn
- البرامج المتأثرة:
- ليبفينت:
- 18 يناير 2024: تم تقديم العلاقات العامة.
- 18 فبراير 2024: تم إصلاحه أثناء الدمج.
- أوبن لايت سبيد:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 11 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- يمكن استخدام رؤوس
Content-Length
السلبي لإجبار الخادم على الدخول في حلقة مشغولة لا نهائية.
- حالة الاستخدام: دوس
- المتطلبات: لا شيء.
- المخاطر: عالية. هذا الخطأ تافه للاستغلال.
- الحمولة:
GET / HTTP/1.1rnHost: arnContent-Length: -48rnrn
- البرامج المتأثرة:
- النمس:
- 27 أبريل 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 16-18 مايو 2023: تم الإصلاح في الالتزامات 4663090 و926959a و2669991.
- المعينة CVE-2023-34188.
- يتم اقتطاع كتلة رأس HTTP عند استلام رأس بدون اسم أو قيمة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول يقوم بإعادة توجيه أسماء الرؤوس الفارغة.
- المخاطر: متوسطة. راجع علة المكافأة الإضافية 2.
- الحمولة:
GET / HTTP/1.1rn:rnI: am chopped offrnrn
- البرامج المتأثرة:
- النمس:
- 26 يونيو 2023: تم الإبلاغ عنه عبر إصدار GH.
- 29 يونيو 2023: تم الإصلاح في الالتزام 415bbf2.
- يمكن فصل أسماء الرؤوس عن القيم الموجودة على مسافة فقط؛ لا
:
مطلوب.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه خطوط الرأس التي لا تحتوي على
:
. - المخاطر: متوسطة. انظر علة محول الطاقة 14.
- الحمولة:
GET / HTTP/1.1rnContent-Length 10rnrn0123456789
- البرامج المتأثرة:
- النمس:
- 7 يوليو 2023: تم الإبلاغ عنه عبر إصدار GH.
- 7 يوليو 2023: تم الإصلاح في الالتزام 5dff282.
- يتم تفسير رؤوس
Content-Length
غير الصالحة على أنها مكافئة لأطول بادئة صالحة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه قيم
Content-Length
ببادئات غير صالحة (مثل 0x
أو +
) - المخاطر: عالية. انظر خطأ محول الطاقة 1.
- الحمولة:
GET / HTTP/1.1rnContent-Length: 1ZrnrnZ
- البرامج المتأثرة:
- النمس:
- 31 يوليو 2023: تم الإبلاغ عنه عبر إصدار GH
- 17 أغسطس 2023: تم الإصلاح في الالتزام.
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- يمكن إنهاء كتلة الرأس بشكل غير صحيح على
rnrX
، حيث يمكن أن يكون X
أي بايت.
- حالة الاستخدام: ؟؟؟
- المتطلبات: محول طاقة يقوم بإعادة توجيه أسماء الرؤوس التي تبدأ بـ
r
، أو يسمح بـ r
كمسافة بيضاء قابلة للطي في بداية السطر. - المخاطر: منخفضة. أنا لست على علم بمحول الطاقة هذا.
- الحمولة:
GET / HTTP/1.1rnHost: arnrZGET /evil: HTTP/1.1rnHost: arnrn
- البرامج المتأثرة:
- نود.جي إس:
- 7 يوليو 2023: تم الإبلاغ عنه عبر تقرير HackerOne.
- 31 يوليو 2023: تم إصلاحه في التزام llhttp.
- 16 سبتمبر 2023: تم الإصلاح في التزام العقدة.
- يتم إنهاء الأسطر المجمعة بشكل غير صحيح على
rX
، حيث يمكن أن يكون X
أي بايت.
- حالة الاستخدام: طلب التهريب.
- المتطلبات: محول طاقة يقوم بإعادة توجيه
r
داخل المسافة البيضاء الاختيارية في تحويلة قطعة. - المخاطر: عالية. انظر خطأ محول الطاقة 3.
- الحمولة:
GET / HTTP/1.1rnHost: arnTransfer-Encoding: chunkedrnrn5rr;ABCDrn34rnErn0rnrnGET / HTTP/1.1rnHost: arnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- نود.جي إس:
- 9 يوليو 2023: تم الإبلاغ عنه عبر تعليق HackerOne.
- 31 يوليو 2023: تم إصلاحه في التزام llhttp.
- 16 سبتمبر 2023: تم الإصلاح في التزام العقدة.
- يتم تفسير رؤوس
Content-Length
باستخدام strtoll(,,0)
، لذا يتم إساءة تفسير البادئات 0
و +
و -
و 0x
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه
0
ثانية في قيم Content-Length
، وهو ما يسمح به المعيار. - المخاطر: عالية. وهذا قابل للاستغلال ضد محولات الطاقة المتوافقة مع المعايير.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnContent-Length: 010rnrn01234567
- البرامج المتأثرة:
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- يتم قبول الطلبات التي تحتوي على عدة رؤوس متعارضة
Content-Length
، مع إعطاء الأولوية للأخير.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل الطلبات ويعيد توجيهها باستخدام رأسين
Content-Length
، مع إعطاء الأولوية للأول. - المخاطر: منخفضة. لست على علم بوجود أي محول طاقة من هذا القبيل، لكن وجود واحد يبدو محتملًا للغاية.
- الحمولة:
GET / HTTP/1.1rnHost: arnContent-Length: 0rnContent-Length: 1rnrnZ
- البرامج المتأثرة:
- سريعHTTP:
- 4 فبراير 2024: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 11 فبراير 2024: تم الإصلاح في الالتزام.
-
r
مسموح به في قيم الرأس.
- حالة الاستخدام: ؟؟؟
- المتطلبات: محول طاقة يخطئ في تفسير
r
ويعيد توجيهه في قيم الرأس. - المخاطر: منخفضة. لست على علم بأي محول من هذا القبيل.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnHeader: varluernrn
- البرامج المتأثرة:
- أوبن لايت سبيد:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 أغسطس 2023: تم إصلاحه في OLS 1.7.18.
- يتم اقتطاع قيم الرأس عند
x00
.
- حالة الاستخدام: تجاوز ACL
- المتطلبات: محول طاقة يقوم بإعادة توجيه
x00
في قيم الرأس. - المخاطر: متوسطة. انظر خطأ محول الطاقة 12.
- الحمولة:
GET / HTTP/1.1rnHost: whateverrnTest: testx00THESE BYTES GET DROPPEDrnConnection: closernrn
- البرامج المتأثرة:
- أوبن لايت سبيد:
- 3 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: تم الإصلاح في هذا التاريخ أو قبله.
- ليبفينت:
- 29 يناير 2024: تم الإبلاغ عنه عبر الاستشارات الأمنية لشركة GH.
- 31 يناير 2024: لم يتم إصلاحه.
- تتم إعادة توجيه أحرف الإرجاع داخل المسافة البيضاء الاختيارية التي تتبع الفاصلة المنقوطة في ملحق القطعة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يعامل
rr
كمكافئ لـ rn
في هذا الموقع. - المخاطر: عالية. راجع خطأ الخادم 31.
- الحمولة:
POST /abc HTTP/1.1rnTransfer-Encoding: chunkedrnHost: h2o.http-garden.usrnrn41;a=brrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXrn0rnrnGET /bad_path/pwned HTTP/1.1rnHost: arnContent-Length: 412rnrn0rnrnGET /def HTTP/1.1rnHost: h2o.http-garden.usrnrn
- البرامج المتأثرة:
- أكاماي CDN:
- 3 ديسمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: تم الإصلاح في هذا التاريخ أو قبله.
- يمكن أن تستمر أسماء الرؤوس عبر السطور.
- حالة الاستخدام: طلب التهريب.
- المتطلبات: محول طاقة يقوم بإعادة توجيه خطوط الرأس التي لا تحتوي على
:
. - المخاطر: متوسطة. انظر علة محول الطاقة 14.
- الحمولة:
POST / HTTP/1.1rnHost: whateverrnTransfer-rnEncoding: chunkedrnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- راكب:
- 6 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 22 يناير 2024: تم إصلاحه في الإصدار.
- يتم تفسير
Content-Length
الفارغ في الطلبات على أنه "قراءة حتى انتهاء المهلة".
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقبل ويعيد توجيه قيم رأسية
Content-Length
الفارغة، ويعاملها على أنها تعادل 0. - المخاطر: متوسطة. انظر أخطاء محول الطاقة 5 و11.
- الحمولة:
GET / HTTP/1.1rnHost: localhostrnContent-Length: rnrnGET / HTTP/1.1rnHost: localhostrnrn
- البرامج المتأثرة:
- بوما:
- 16 يونيو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 17 أغسطس 2023: تم إصلاحه في الإصدارين 6.3.1 و5.6.7 من Puma. انظر الاستشارية.
- يتم إنهاء نصوص الرسائل المقسمة في
rnXX
، حيث يمكن أن يكون XX
أي بايتين.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يحافظ على حقول المقطع الدعائي ولا يضيف مسافة بيضاء بين
:
والقيمة داخل حقول المقطع الدعائي. (ATS هو أحد هذه الخوادم) - المخاطر: عالية. متطلبات استغلال هذا الخطأ لا تتطلب من محول الطاقة انتهاك المعايير.
- الحمولة:
GET / HTTP/1.1rnTransfer-Encoding: chunkedrnrn0rnX:POST / HTTP/1.1rnrn
- البرامج المتأثرة:
- بوما:
- 31 يوليو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 17 أغسطس 2023: تم إصلاحه في الإصدارين 6.3.1 و5.6.7 من Puma. انظر الاستشارية.
- المعينة CVE-2023-40175.
- لم يتم التحقق من صحة أساليب وإصدارات HTTP.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء.
- الحمولة:
x00 / HTTP/............0596.7407.rnrn
- البرامج المتأثرة:
- نادلة:
- 17 أكتوبر 2023: تم تقديم العلاقات العامة.
- 4 فبراير 2024: تم إصلاح مشكلة دمج العلاقات العامة.
- يتم تجريد
xa0
و x85
من بدايات ونهايات قيم الرأس، باستثناء رأس Transfer-Encoding
.
- حالة الاستخدام: تجاوز قيمة الرأس ACL
- المتطلبات: محول طاقة يقبل ويعيد توجيه
xa0
و x85
في مكانهما. - المخاطر: متوسطة. يسمح المعيار لمحولات الطاقة بإعادة توجيه نص obs في قيم الرأس.
- الحمولة:
GET /login HTTP/1.1rnHost: arnUser: x85adminxa0rnrn
- البرامج المتأثرة:
- نادلة:
- 4 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 4 فبراير 2024: تم الإصلاح في الالتزام.
- يتم تفسير قيم
Content-Length
الفارغة على أنها تعادل 0
، ويتم منحها الأولوية على أي قيم Content-Length
لاحقة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه قيم
Content-Length
الفارغة قبل القيم غير الفارغة، ويفسر القيم غير الفارغة. - المخاطر: عالية. انظر خطأ محول الطاقة 11.
- الحمولة:
GET / HTTP/1.1rnContent-Length: rnContent-Length: 43rnrnPOST /evil HTTP/1.1rnContent-Length: 18rnrnGET / HTTP/1.1rnrn
- البرامج المتأثرة:
- ويب:
- 14 أغسطس 2023: تم الإبلاغ عنه عبر إصدار GH.
- 15 أغسطس 2023: تم إصلاحه في العلاقات العامة.
- يتم تجريد
x00
من نهايات قيم الرأس.
- حالة الاستخدام: تجاوز ACL
- المتطلبات: محول طاقة يقوم بإعادة توجيه
x00
في قيم الرأس. - المخاطر: متوسطة. انظر خطأ محول الطاقة 12.
- الحمولة:
GET / HTTP/1.1rnEvil: evilx00rnrn
- البرامج المتأثرة:
- ويب:
- 30 نوفمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 3 فبراير 2024: تم إصلاحه في العلاقات العامة.
- يتم التعامل مع جميع ترميز النقل غير المعروف على أنه مكافئ للترميز
chunked
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة يقوم بإعادة توجيه ترميزات النقل بخلاف
identity
chunked
. وهذا مسموح به بموجب المعيار. - المخاطر: عالية. وهذا يسمح بطلب التهريب مقابل بعض محولات الطاقة المتوافقة مع المعايير.
- الحمولة:
POST / HTTP/1.1rnHost: arnTransfer-Encoding: bleghrnrn1rnZrn0rnrn
- البرامج المتأثرة:
- سريعHTTP:
- 4 فبراير 2024: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 11 فبراير 2024: تم الإصلاح في الالتزام.
- يتم إغلاق الاتصالات قبل الأوان عندما يتم توجيه طلب غير صالح بعد طلب صالح.
- حالة الاستخدام: ؟؟؟
- المتطلبات: لا شيء.
- المخاطر: لا شيء.
- الحمولة:
GET / HTTP/1.1rnConnection: closernrnInvalidrnrn
- البرامج المتأثرة:
- النمس:
- 29 يناير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 13 فبراير 2024: تم الإصلاح في الالتزام.
- يوفيكرن:
- 29 يناير 2024: تم الإبلاغ عنه عبر تعليق مناقشة GH.
- 6 فبراير 2024: تم إصلاح الالتزام عن غير قصد.
- يتم تجريد البايتات الأكبر من
x80
من بدايات قيم الرأس ونهاياتها.
- حالة الاستخدام: مضيف المشاكل.
- المتطلبات: محول طاقة يقوم بإعادة توجيه رؤوس المضيف التي تحتوي على بايتات أكبر من
x80
. - المخاطر: متوسطة.
- الحمولة:
POST / HTTP/1.1rnHost: xffaxffrnTransfer-Encoding: xffchunkedxffrnrn1rnZrn0rnrn
- البرامج المتأثرة:
- كعكة:
- 13 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 13 فبراير 2024: لم يتم إصلاحه.
- عند تلقي مقطع غير صالح، لا يتم إغلاق الاتصال، ويتم وضع بداية الرسالة التالية بعد أول
rn
الذي يلي المقطع غير الصالح.
- حالة الاستخدام: تسمم قائمة انتظار الاستجابة.
- المتطلبات: محول طاقة يقوم بإعادة توجيه القطع غير الصالحة.
- المخاطر: متوسطة.
- الحمولة:
POST / HTTP/1.1rnHost: whateverrnTransfer-Encoding: chunkedrnrnINVALID!!!rnGET / HTTP/1.1rnHost: whateverrnrn
- البرامج المتأثرة:
- شيروت:
- 14 فبراير 2024: تم الإبلاغ عنه عبر إصدار GH.
- 14 فبراير 2024: لم يتم إصلاحه.
- يتم تفسير الطلبات المتصلة في المخزن المؤقت للطلب الأولي على أنها نص رسالة الطلب الأول في المخزن المؤقت، حتى لو كان يحتوي على رأس
Content-Length: 0
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: محول طاقة لا يغير حدود عناصر التدفق الوارد.
- المخاطر: منخفضة. أنا لست على علم بأي محول من هذا القبيل
- الحمولة:
POST / HTTP/1.1rnContent-Length: 0rnConnection:keep-alivernHost: arnid: 0rnrnPOST / HTTP/1.1rnHost: arnid: 1rnContent-Length: 34rnrn
GET / HTTP/1.1rnHost: arnid: 2rnrn
- البرامج المتأثرة:
- بوما:
- 2 فبراير 2024: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 2 فبراير 2024: تم الإصلاح في الالتزام.
أخطاء محول الطاقة
هذه أخطاء في الطريقة التي تقوم بها محولات الطاقة بتفسير الطلبات وتطبيعها وإعادة توجيهها.
-
0x
- يتم قبول قيم Content-Length
ذات البادئة بشكل غير صحيح وإعادة توجيهها، دون التحقق من صحة نص الرسالة.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يفسر
Content-Length
على أنه أطول بادئة صالحة، أو يفسر Content-Length
ذو البادئة 0x
. - المخاطر: متوسطة. راجع أخطاء الخوادم 10 و29 و32.
- الحمولة:
POST / HTTP/1.1rnHost: akamai.my-domain.coolrnContent-Length: 0x10rnrnZ
- البرامج المتأثرة:
- أكاماي CDN:
- 7 سبتمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 27 نوفمبر 2023: تم الإخطار بالإصلاح عبر البريد الإلكتروني.
- يتم قبول قيم حجم القطعة غير الصالحة وإعادة توجيهها بشكل غير صحيح.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم خلفي HTTP/1.1
- المخاطر: عالية. كان هذا الخطأ قابلاً للاستغلال لطلب التهريب ضد الواجهات الخلفية العشوائية.
- الحمولة:
POST / HTTP/1.1rnHost: akamai.my-domain.coolrnTransfer-Encoding: chunkedrnrnZrnZZrnZZZrnrn
- البرامج المتأثرة:
- أكاماي CDN:
- 7 سبتمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 27 نوفمبر 2023: تم الإخطار بالإصلاح عبر البريد الإلكتروني.
-
r
مسموح به بشكل غير صحيح في المسافة البيضاءchunk-ext قبل ;
.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يسيء تفسير
r
في هذا الموقع. - المخاطر: عالية. راجع خطأ الخادم 31.
- الحمولة:
POST / HTTP/1.1rnHost: server.my-domain.coolrnTransfer-Encoding: chunkedrnrn2rr;arn02rn41rn0rnrnGET /bad_path/pwned HTTP/1.1rnHost: arnContent-Length: 430rnrn0rnrnGET / HTTP/1.1rnHost: server.my-domain.coolrnrn
- البرامج المتأثرة:
- أكاماي CDN:
- 7 سبتمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 27 نوفمبر 2023: تم الإخطار بالإصلاح عبر البريد الإلكتروني.
- خادم حركة أباتشي:
- 20 سبتمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 13 فبراير 2024: تم إصلاحه في العلاقات العامة.
- موازن تحميل تطبيق Google Cloud Classic:
- 13 سبتمبر 2023: تم الإبلاغ عنه عبر Google IssueTracker.
- 30 يناير 2024: تم الإصلاح في هذا التاريخ أو قبله.
- تتم إعادة توجيه الرسائل التي تحتوي على أجزاء غير صالحة بدون نصوص الرسائل الخاصة بها.
- حالة الاستخدام: ؟؟؟
- المتطلبات: غير متوفر
- المخاطر: لا شيء.
- الحمولة:
POST / HTTP/1.1rnTransfer-Encoding: chunkedrnrn1r0n
- البرامج المتأثرة:
- جنيه:
- 13 يونيو 2024: تم الإبلاغ عنه عبر إصدار GH.
- 14 يونيو 2024: تم الإصلاح في الالتزام.
- تتم إعادة توجيه الرؤوس الفارغة
Content-Length
بشكل غير صحيح.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يفسر قيم
Content-Length
الفارغة على أنها أي شيء آخر غير 0 - المخاطر: متوسطة. راجع خطأ الخادم 38.
- الحمولة:
GET / HTTP/1.1rnhost: whateverrncontent-length: rnrn
- البرامج المتأثرة:
- خادم حركة أباتشي:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر إصدار GH.
- 6 أغسطس 2023: تم الإصلاح عبر العلاقات العامة.
- يتم قبول وحدات البايت غير المسموح بها وإعادة توجيهها ضمن أسماء الرؤوس.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يسيء تفسير هذه البايتات غير الصالحة ضمن أسماء الرؤوس.
- المخاطر: متوسطة. راجع خطأ الخادم 41.
- الحمولة:
GET / HTTP/1.1rnHost: fanoutrnHeaderx85: valuernrn
- البرامج المتأثرة:
- خادم حركة أباتشي:
- 29 يونيو 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 18 سبتمبر 2023: تم الإبلاغ عنه عبر إصدار GH.
- 31 يناير 2024: لم يتم إصلاحه.
- تم ترحيل OpenBSD:
- 10 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 28 نوفمبر 2023: تم تصحيح الالتزام.
- يتم تفسير أحجام القطع على أنها أطول بادئة صالحة، ويتم إعادة إصدارها.
- حالة الاستخدام: طلب التهريب
- المتطلبات: خادم يفسر البادئ
0_
أو 0x
على أحجام القطع. - المخاطر: عالية. انظر أخطاء الخادم 1 و 25 ، وعلاج محول الطاقة 19.
- الحمولة النافعة:
POST / HTTP/1.1rnTransfer-Encoding: chunkedrnrn1these-bytes-never-get-validatedrnZrn0rnrn
- البرامج المتأثرة:
- خادم المرور Apache:
- 10 أكتوبر 2023: تم الإبلاغ عنه عبر قضية GH.
- 13 فبراير 2024: ثابت في العلاقات العامة.
- العنصر النائب :)
-
Transfer-Encoding: ,chunked
سليمة ، وتفسيرها على أنها مكافئة chunked
.
- استخدام الحالة: طلب تهريب
- المتطلبات: الخادم الذي يتجاهل كلاهما غير معروف
Transfer-Encoding
ويعامل ,chunked
وهو متميز عن chunked
. - المخاطر: عالية. انظر خادم علة 21.
- الحمولة النافعة:
POST / HTTP/1.1rnHost: arnTransfer-Encoding: ,chunkedrnrn0rnrn
- البرامج المتأثرة:
- Azure CDN:
- 15 أكتوبر ، 2023: تم الإبلاغ عنه عبر تقرير الضعف MSRC.
- 29 نوفمبر 2023: ثابت في هذا التاريخ أو قبله.
- 12 كانون الأول (ديسمبر) 2023: "هذه القضية لا تلبي الشريط للخدمة من قِبل MSRC لأن تهريب HTTP لا يعتبر ثغرة أمنية وسنغلق هذه القضية".
- NGHTTPX:
- 14 أكتوبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 17 أكتوبر 2023: ثابت في العلاقات العامة.
- يتم إعادة توجيه
r
بشكل غير صحيح في قيم الرأس.
- استخدام الحالة: طلب تهريب
- المتطلبات: خادم يعامل
r
يعادل rn
داخل حقول الرأس. - المخاطر: متوسطة. انظر خادم علة 13.
- الحمولة النافعة:
GET / HTTP/1.1rnInvalid-Header: thisrvaluerisrinvalidrnrn
- Google Cloud Classic Application Load Balancer:
- 7 سبتمبر 2023: تم الإبلاغ عنه عبر Google Issuetracker.
- 30 يناير 2024: ثابت في أو قبل هذا التاريخ.
- يتم إعادة توجيه رؤوس
Content-Length
الفارغة بشكل غير صحيح ، حتى في وجود رؤوس Content-Length
الأخرى ، طالما يأتي رأس Content-Length
الفارغ أولاً.
- استخدام الحالة: طلب تهريب
- المتطلبات: الخادم الذي يفسر قيم
Content-Length
الفارغة كـ 0 ويقبل رؤوس متعددة Content-Length
في الطلبات الواردة ، مما يعطي الأولوية الأولى. - المخاطر: متوسطة. انظر خادم علة 42.
- حمولة:
GET / HTTP/1.1rnhost: whateverrncontent-length: rncontent-length: 59rnrnPOST /evil HTTP/1.1rnhost: whateverrncontent-length: 34rnrnGET / HTTP/1.1rnhost: whateverrnrn
- البرامج المتأثرة:
- هابروكسي:
- 2 أغسطس 2023: تم الإبلاغ عنه عبر قضية GH.
- 9 أغسطس 2023: ثابت في الالتزام.
- 10 أغسطس ، 2023: تم تعيين CVE-2023-40225.
- يتم إعادة توجيه
x00
في قيم الرأس.
- استخدام الحالة: ACL Bypass
- المتطلبات: الخادم الذي ياقت قيم الرأس في
x00
. - المخاطر: متوسطة. انظر أخطاء الخادم 35 و 43 ، و Orgen 20.
- حمولة:
GET / HTTP/1.1rnHost: google.comx00.kallus.orgrnrn
- البرامج المتأثرة:
- هابروكسي:
- 19 سبتمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 31 يناير 2024: ثابت في الالتزام.
- OpenLiteSpeed:
- 3 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: ثابت في هذا التاريخ أو قبله.
- يتم قبول العارية
n
كمقدمة خط قطعة.
- استخدام الحالة: ؟؟؟
- المتطلبات: n/a
- المخاطر: لا شيء
- الحمولة النافعة:
GET / HTTP/1.1rnTransfer-Encoding: chunkedrnrnarn0123456789n0rnrn
- البرامج المتأثرة:
- هابروكسي:
- 25 يناير 2024: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 30 يناير 2024: ثابت في Commmits 7B737DA و 4837E99.
- خطوط الحقل مع لا
:
يتم إعادة توجيهها كما هو.
- استخدام الحالة: طلب تهريب
- المتطلبات: خادم خلفي يسيء تفسير خطوط حقل الرأس مع لا
:
. - المخاطر: متوسطة. انظر حشرات محول الطاقة 28 و 37.
- الحمولة النافعة:
GET / HTTP/1.1rnHost: whateverrnTenst: testrnConnection: closernrn
- البرامج المتأثرة:
- OpenLiteSpeed:
- 3 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: ثابت في هذا التاريخ أو قبله.
- تتم إعادة توجيه الطلبات التي تحتوي على كل من رؤوس
Content-Length
Transfer-Encoding
على النحو كما هي إذا كانت قيمة Transfer-Encoding
غير معترف بها.
- استخدام الحالة: طلب تهريب
- المتطلبات: خادم الواجهة الخلفية يعامل
,chunked
على أنه chunked
، ويعطي الأولوية Transfer-Encoding
عبر Content-Length
. هذه السلوكيات مسموح بها من قبل المعايير. - المخاطر: عالية. هذا يسمح لطلب تهريب الخوادم المتوافقة مع المعايير.
- Payload:
GET / HTTP/1.1rnHost: whateverrnTransfer-Encoding: ,chunkedrnContent-Length: 5rnConnection: closernrn0rnrn
- البرامج المتأثرة:
- OpenLiteSpeed:
- 3 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: ثابت في هذا التاريخ أو قبله.
- جنيه:
- 4 فبراير 2024: تم الإبلاغ عنه عبر قضية GH.
- 29 مارس 2024: ثابت في الالتزام.
- لا يتم تطبيع
n
إلى rn
في الرسائل المعالجة.
- استخدام الحالة: طلب تهريب
- المتطلبات: خادم الواجهة الخلفية لا يفسر
n
كخط ينتهي في خطوط الرأس. المعيار يسمح للخوادم بالترجمة n
. - المخاطر: عالية. هذا الخطأ قابل للاستغلال مقابل الخوادم المتوافقة مع المعايير.
- حمولة:
GET / HTTP/1.1nHost: whatevernConnection: closenn
- البرامج المتأثرة:
- OpenLiteSpeed:
- 3 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 31 يناير 2024: لا يزال غير مثبت.
- أجسام الرسائل المكررة التي تحتوي على
rn
قبل أن يتم وضع قطعة من المقدمة دون استبدال رأس Transfer-Encoding
Content-Length
.
- استخدام الحالة: طلب تهريب
- المتطلبات: لا شيء.
- المخاطر: عالية. هذا الخطأ قابل للاستغلال ضد خوادم الخلفية التعسفية.
- حمولة:
POST / HTTP/1.1rnHost: arnTransfer-Encoding: chunkedrnrn17rn0rnrnGET / HTTP/1.1rnrnrnrn0rnrn
- البرامج المتأثرة:
- OpenLiteSpeed
- 30 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: ثابت في هذا التاريخ أو قبله.
-
Transfer-Encoding: ,chunked
سليمة ، ولا يتم تفسيرها على أنها مكافئة chunked
.
- استخدام الحالة: طلب تهريب
- المتطلبات: الخادم الذي يفسر
,chunked
على أنه مكافئ chunked
، وهو ما يقول المعيار أنك قد تفعل ذلك. - المخاطر: عالية. هذا هو طلب تهريب قابلية الاستخدام ضد الخلفية المتوافقة مع المعايير.
- الحمولة النافعة:
GET / HTTP/1.1rnHost: whateverrnTransfer-Encoding: ,chunkedrnContent-Length: 5rnrn0rnrn
- البرامج المتأثرة:
- OpenBsd Relayd:
- 10 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 28 نوفمبر 2023: مرقح في الالتزام.
- يتم تفسير وإعادة توجيه أحجام القطع مع
+
، -
، و 0x
.
- استخدام الحالة: طلب تهريب
- المتطلبات: الخادم الذي يفسر أحجام القطع كأطول بادئة صالحة.
- المخاطر: عالية. انظر خادم علة 22.
- الحمولة النافعة:
POST / HTTP/1.1rnTransfer-Encoding: chunkedrnrn-0x0rnrn
- البرامج المتأثرة:
- OpenBsd Relayd:
- 10 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 28 نوفمبر 2023: مرقح في الالتزام.
- جنيه:
- 10 أكتوبر 2023: تم الإبلاغ عنه عبر قضية GH.
- 11 أكتوبر ، 2023: تم إصلاحه عبر الالتزامات 60A4F42 و F70DB92.
- يتم تسلسل الرؤوس التي تحتوي على
x00
أو n
في قيمة الرأس السابقة.
- استخدام الحالة: طلب تهريب
- المتطلبات: أي خادم خلفي متوافق مع المعايير.
- المخاطر: عالية. هذا هو طلب عام تهريب الضعف.
- الحمولة النافعة:
GET / HTTP/1.1rna:brncx00rnrn
- البرامج المتأثرة:
- OpenBsd Relayd:
- 10 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 29 نوفمبر 2023: مرقح في الالتزام.
- يتم تجريد أجسام الرسائل من طلبات
GET
دون إزالة رؤوسها Content-Length
.
- استخدام الحالة: طلب تهريب
- المتطلبات: أي خادم خلفي يدعم أنابيب الأنابيب.
- المخاطر: عالية. هذا هو طلب عام تهريب الضعف.
- حمولة:
GET / HTTP/1.1rnContent-Length: 10rnrn1234567890
- البرامج المتأثرة:
- OpenBsd Relayd:
- 28 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 1 ديسمبر 2023: مصححة في الالتزام.
- يتم إعادة توجيه الطلبات التي تحتوي على رؤوس متعددة
Content-Length
، مما يعطي الأولوية للآخر.
- استخدام الحالة: طلب تهريب
- المتطلبات: خادم يقبل الطلبات التي تحتوي على رؤوس متعددة
Content-Length
، مع إعطاء الأولوية الأولى. - المخاطر: عالية. انظر خادم علة 23.
- الحمولة النافعة:
POST / HTTP/1.1rnHost: arnContent-Length: 0rnContent-Length: 31rnrnGET /evil HTTP/1.1rnHost: arnrn
- البرامج المتأثرة:
- OpenBsd Relayd:
- 30 نوفمبر 2023: تم الإبلاغ عنه عبر البريد الإلكتروني.
- 10 يوليو 2024: لا يزال غير مثبت.
- يتم إعادة توجيه الطلبات التي تحتوي على كل من
Content-Length
Transfer-Encoding
.
- استخدام الحالة: طلب تهريب
- المتطلبات: الخادم الذي يعطي الأولوية
Content-Length
عبر Transfer-Encoding
، أو لا يدعم Transfer-Encoding: chunked
. - المخاطر: عالية. هذا هو طلب تهريب الطلب الكلاسيكي.
- حمولة:
POST / HTTP/1.1rnHost: arnCon