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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - cakephp-smtp-crlf

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

المقال: https://abraxaslabs.tech/research/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:...
تنفيذ أوامر عن بُعد دون مصادقة على تطبيق هيكليليس هذه البقايامغلق
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 يستخدم نفس الـ callback. يقوم Message::getHeadersString بتطبيق الـ callback على القيم، ثم ينفّذ $key . ': ' . $val.

المنعطفات الخاطئة المسجّلة مسبقًا: التعامل مع GHSA-2qh5 على أنه مغلق والانصراف عنه؛ استدعاء PHP mail() في المختبر (الـ oracle هو 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 للاسترجاع (loopback) على 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، وفي getHeadersString الخاصة بـ Smtp، وفي getHeadersString الخاصة بـ Mail.
  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. للاستخدام في مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة