Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cakephp-smtp-crlf — CakePHP 5.4.2 - عالي - عن بُعد - حقن الترويسة - SmtpTransport سطر جديد منفرد متبقٍ من GHSA-2qh5 | Kitploit
أدوات/GitHubGitHub/abraxas/cakephp-smtp-crlf
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراقأمان البريد الإلكتروني
GitHubabraxas/cakephp-smtp-crlf

cakephp-smtp-crlf

CakePHP 5.4.2 - عالي - عن بُعد - حقن الترويسة - SmtpTransport سطر جديد منفرد متبقٍ من GHSA-2qh5

عرض المستودع
1منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - cakephp-smtp-crlf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cakephp-smtp-crlf

cakephp-smtp-crlf

الفئة: حقن ترويسة البريد الوصول: عن بُعد

CakePHP 5.4.2 (887b641) - Cake Software Foundation

أضاف GHSA-2qh5 / CVE-2026-77634 الدالة str_replace("\r\n", '', $val) على SmtpTransport و MailTransport. هذا الاستدعاء لا يفعل شيئًا بالنسبة لـ LF أو CR المفرد. لا تزال أسماء الترويسات تُدمج دون تعقيم. يتعامل PHP mail() وبيانات SMTP DATA التي التقطناها مع LF المفرد كسطر ترويسة جديد.

إذا نسخت تطبيقات بيانات المستخدم إلى ترويسة مخصصة، يمكن للمهاجم إضافة Bcc، أو إعادة كتابة Subject، أو التسلل إلى متن الرسالة عبر إرسال LF بدلاً من CRLF. الإصلاح المُعلن لا يوقف ذلك. لا يضع cakephp/app القياسي بيانات الطلب في ترويسات مخصصة من تلقاء نفسه.

المعرّفلا يوجد CVE بعد
الفئةحقن ترويسة البريد (بقايا LF المفرد من GHSA-2qh5)
الوصولعن بُعد (مثل GHSA-2qh5: ينسخ التطبيق بيانات المستخدم إلى Message::setHeaders)
CWECWE-93
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
المنتجCakePHP
المتأثر5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
المصادقةمثل GHSA-2qh5: ينسخ التطبيق بيانات المستخدم إلى Message::setHeaders / addHeaders
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

يحتاج إلى تطبيق يضع بيانات الطلب في ترويسات بريد مخصصة.

الصلاحيةالطريقة / نقطة الوصولمُثبت مختبريًا أو مُستنتج
حقن سطر Bcc: إضافي (أو Cc: / To:) في كتلة ترويسة SMTP DATAsetHeaders(['X-Meta' => "ok\nBcc: [email protected]"]) ثم SmtpTransport::sendمُثبت مختبريًا. يُظهر كل من SMTP DATA و getHeadersString سطر Bcc: جديدًا. الشاهد X-Oracle: CAKEPHP-SMTP-CRLF-WITNESS
نفس الحقن عبر MailTransportنفس الاستدعاء في MailTransport::sendمُثبت مختبريًا على getHeadersString مع قائمة تضمين MailTransport واستدعاء الإزالة. لا يستدعي هذا المختبر PHP mail()
CR المفرد وكذلك LF المفردok\rBcc: ...مُثبت مختبريًا. إزالة الزوج فقط تترك \r؛ محللات الترويسات التي تقسم على CR/LF تعامله كسطر جديد
إعادة كتابة Subject أو التسلل إلى المتنالقيمة تحتوي على \nSubject: أو \n\nمُستنتج من نفس الدمج. حقن المختبر Bcc / X-Oracle، وليس Subject
مستلم إضافي في المظروفBcc محقون داخل DATAمُستنتج. بعض خوادم MTAs تعيد تحليل DATA. لا يزال RCPT TO في Cake يستخدم فقط setTo / setCc / setBcc على كائن Message
زوج \r\n ثنائي البايتإزالة GHSA-2qh5مُثبت مختبريًا ومغلق. الدمج في حالة التحكم ينتج okBcc:...
RCE بدون مصادقة على تطبيق هيكليليس هذه البقايامغلق
CRLF في filename= متعدد الأجزاء5.4.2 يزيل بالفعل "/\r/\nمغلق

كيف وجدته

ثبّتت cakephp/cakephp 5.4.2 بعد GHSA-2qh5 و GHSA-fxf7 و GHSA-vjqc وملاحظة filename= في 5.4.2. ترسل اختبارات النقل فقط "line one\r\nline two" وتتوقع line oneline two.

SmtpTransport 5.4.2:

$headers = $message->getHeadersString(
    [...],
    "\r\n",
    function (string $val): string {
        return str_replace("\r\n", '', $val);
    },
);

يستخدم MailTransport نفس الاستدعاء. يقوم Message::getHeadersString بتطبيق الاستدعاء على القيم، ثم ينفذ $key . ': ' . $val.

مسارات خاطئة مسجلة مسبقًا: اعتبار GHSA-2qh5 مغلقًا والمضي قدمًا؛ استدعاء PHP mail() في المختبر (الشاهد هو SMTP DATA بالإضافة إلى getHeadersString)؛ تضخيم هذا إلى RCE بدون مصادقة على تطبيق هيكلي. مسرحية: reverse shell.

المختبر

python3 cakephp-smtp-crlf-Abraxas-Labs.py

أو

cd lab
./run.sh

Composer cakephp/cakephp:5.4.2 في PHP 8.3. مصرف SMTP على الاسترجاع المحلي عند 127.0.0.1:19410.

  1. التحكم: X-Meta = ok\r\nBcc: [email protected]\r\nX-Oracle: CAKEPHP-SMTP-CRLF-WITNESS. النتيجة: ترويسة واحدة X-Meta: okBcc: [email protected]: CAKEPHP-SMTP-CRLF-WITNESS.
  2. حالة LF: نفس الحمولة مع \n فقط. النتيجة: سطور Bcc: و X-Oracle: جديدة في SMTP DATA، و Smtp getHeadersString، و Mail getHeadersString.
  3. حالة CR: نفس الشيء مع \r فقط. نفس السطور الإضافية.
SUCCESS cakephp-smtp-crlf pin=5.4.2 control-crlf-stripped=yes lf-bcc=yes cr-leftover=yes how=smtp-data-bcc-line CAKEPHP-SMTP-CRLF-WITNESS

الإصلاح

أزل أو ارفض أي \r أو \n في أسماء الترويسات وقيمها (مثل معقّم filename= في 5.4.2). غطِّ LF المفرد و CR المفرد في اختبارات النقل، وليس فقط زوج \r\n.

المراجع

  • github.com/cakephp/cakephp وسم 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Mailer/Transport/SmtpTransport.php · src/Mailer/Transport/MailTransport.php · src/Mailer/Message.php
  • قريب مُرقّع (الزوج فقط): GHSA-2qh5-382h-3jpc / CVE-2026-77634
  • CWE-93

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر استرجاع محلي فقط. لا ضمان.

تنزيل الأداة