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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-6042-PoC — إثبات المفهوم واختبار شامل من البداية إلى النهاية لهجوم الحرمان من الخدمة عبر التعقيد الخوارزمي في musl libc 0.8.0-1.2.6 المخصص له CVE-2026-6042 | Kitploit
أدوات/GitHubGitHub/jensnesten/cve-2026-6042-poc
تحليل الثغرات الأمنيةالاستغلالأمن الويبالاختبار العشوائي
GitHubjensnesten/cve-2026-6042-poc

CVE-2026-6042-PoC

إثبات المفهوم واختبار شامل من البداية إلى النهاية لهجوم الحرمان من الخدمة عبر التعقيد الخوارزمي في musl libc 0.8.0-1.2.6 المخصص له CVE-2026-6042

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-6042: هجوم تعقيد خوارزمي (DoS) في iconv بمكتبة musl libc

حلقات تخطي الفجوات في مفكك ترميز GB18030 رباعي البايت في iconv بمكتبة musl تسمح لمدخلات صغيرة مصممة بعناية باستهلاك وقت معالجة CPU غير متناسب. يمكن لحمولة خبيثة بحجم 40 كيلوبايت أن تُبقي نواة معالج مشغولة لأكثر من 40 دقيقة.

  • نشرة الأمان: https://www.openwall.com/lists/oss-security/2026/04/09/19
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-6042

خلافًا لما ذكرته النشرات الأمنية، فإن ناقل الهجوم لهذا الاستغلال هو الشبكة بوضوح، وليس محليًا. ينبع هذا من حقيقة أن VulDB لا يفهم فعليًا الثغرات التي يقوم بتعيينها.

متجه CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - 7.5 (عالي)

نظرة عامة

الحقلالتفاصيل
البرنامج المتأثرmusl libc (تنفيذ iconv)
الترميزات المتأثرةGB18030 (تسلسلات رباعية البايت)
النوعتعقيد خوارزمي / رفض خدمة
الإصدارات المؤكدةmusl 1.2.5 (Alpine 3.21)، musl 1.2.6 (مُجمّع من المصدر)
الإصدارات المحتمل تأثرهاجميع إصدارات musl منذ إدخال دعم GB18030 وUHC/CP949
سطح الهجومأي خدمة مبنية على musl تستدعي iconv() على مدخلات غير موثوقة بهذه الترميزات

السبب الجذري

يقوم مفكك ترميز GB18030 رباعي البايت في musl (src/locale/iconv.c، تقريبًا الأسطر 434-442) بتحويل تسلسل إدخال رباعي البايت إلى فهرس خطي ثم يمر عبر حلقة تخطي فجوات لربط هذا الفهرس بنقطة رمز Unicode. لكل حرف يتم فك ترميزه، تتكرر الحلقة الداخلية عبر جدول gb18030[126][190] بأكمله (23,940 إدخالًا) لحساب عدد نقاط الرموز المعيّنة ببايتين التي تقع ضمن نطاق منزلق.

ينتج التسلسل البايتي 82 35 8F 33 فهرسًا خطيًا قيمته 19,171، والذي يقع مباشرة أسفل نطاق CJK الموحد الكثيف (U+4E00-U+9FBD، حوالي 20,902 إدخالًا). يجب على حلقة تخطي الفجوات بعد ذلك مطاردة الكتلة الكثيفة بأكملها إدخالًا واحدًا في كل مرة، مُنفِّذة حوالي 20,905 تكرارًا خارجيًا، كل منها يفحص جميع إدخالات الجدول البالغة 23,940. وهذا يعني حوالي 500 مليون مقارنة لكل حرف إدخال.

نظرًا لأن التكلفة تتزايد خطيًا مع عدد الأحرف الخبيثة في الإدخال، وكل حرف يُطلق بشكل مستقل الحلقة الداخلية الكاملة، فإن إجمالي العمل هو O(n * k^2) حيث n هو عدد أحرف الإدخال وk هو حجم جدول البحث.

التأثير

أي نظام مبني على musl (Alpine Linux، Void Linux، postmarketOS، صور الحاويات/الأنظمة المدمجة، إلخ) يشغّل خدمة تقوم بتحويل ترميز GB18030 أو EUC-KR من مدخلات يقدمها المستخدم عبر iconv() يكون عرضة لرفض الخدمة.

الأوقات المتوقعة على نواة واحدة (مُقاسة على Alpine 3.21 / musl 1.2.5):

الإدخالالوقت
حرف خبيث واحد (4 بايت)~0.26 ثانية
100 حرف (400 بايت)~26 ثانية
1,000 حرف (4 كيلوبايت)~4.3 دقيقة
10,000 حرف (40 كيلوبايت)~43 دقيقة

للمقارنة، يتم فك ترميز 100 حرف GB18030 غير ضار في ميكروثانية.

محتويات المستودع

الملفالوصف
poc_gb18030_dos.cإثبات مفهوم مستقل: يقيس وقت فك ترميز GB18030 الضار مقابل غير الضار عبر iconv()
server.cخادم HTTP بسيط يحوّل أجسام POST عبر iconv()، محاكيًا سطح هجوم حقيقي
Dockerfileصورة حاوية Alpine Linux تقوم ببناء وتشغيل الخادم الضعيف
test.shسكربت اختبار شامل: يرسل حمولات ضارة وغير ضارة إلى الخادم ويقارن أوقات الاستجابة

إعادة الإنتاج

1. إثبات المفهوم المستقل (قياس توقيت iconv المباشر)

البناء والتشغيل على أي نظام مبني على musl:

root@kitploit:~
# على Alpine Linux
apk add gcc musl-dev
gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c
./poc_gb18030_dos

أو عبر Docker:

root@kitploit:~
docker run --rm -v "$(pwd)":/work -w /work alpine:latest \
  sh -c "apk add gcc musl-dev && gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c && ./poc_gb18030_dos"

المخرجات المتوقعة: الأحرف غير الضارة تُفك ترميزها في ميكروثانية؛ حرف خبيث واحد (82 35 8F 33) يستغرق ~0.26 ثانية.

2. شامل (خادم HTTP في Docker)

بناء وتشغيل الخادم الضعيف:

root@kitploit:~
docker build -t cve-2026-6042 .
docker run --rm -p 8080:8080 cve-2026-6042

في طرفية أخرى، قم بتشغيل سكربت الاختبار:

root@kitploit:~
./test.sh

أو أرسل حمولة يدويًا:

root@kitploit:~
# غير ضار: 100 حرف، يجب أن يعود فورًا
printf '\x81\x30\x81\x30%.0s' $(seq 1 100) > /tmp/benign.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/benign.bin http://localhost:8080/

# خبيث: 5 أحرف فقط، يجب أن يستغرق >1 ثانية
printf '\x82\x35\x8F\x33%.0s' $(seq 1 5) > /tmp/adversarial.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/adversarial.bin http://localhost:8080/

يُبلغ ترويسة الاستجابة X-Transcode-Time عن الوقت المستغرق داخل iconv().

عرض توضيحي شامل

تُظهر لقطة الشاشة أدناه التوسع الخطي للإدخال الخبيث مقابل خادم Docker: 20 حرفًا (80 بايت) يستغرق ~5.2 ثانية، و80 حرفًا (320 بايت) يستغرق ~20.8 ثانية، و160 حرفًا (640 بايت) يستغرق ~41.5 ثانية.

عرض توضيحي لرفض الخدمة الشامل

تسلسلات البايت الرئيسية

التسلسلالفهرس الخطيالسلوك
81 30 81 30 (غير ضار)128نقطة رمز منخفضة؛ حلقة تخطي الفجوات تنتهي بسرعة
82 35 8F 33 (خبيث)19,171يقع مباشرة أسفل كتلة CJK الكثيفة؛ يُطلق ~500 مليون مقارنة
82 35 90 30 (خبيث)~19,200نفس المنطقة، تكلفة مماثلة

إخلاء مسؤولية

يُنشر هذا المستودع لأغراض البحث الأمني والإفصاح المسؤول. الكود مُقدم فقط لإعادة إنتاج والتحقق من CVE-2026-6042. لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

تنزيل الأداة