Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cakephp-smtp-crlf — CakePHP 5.4.2 - Hoch - Remote - Header-Injection - SmtpTransport einzelnes LF Überbleibsel von GHSA-2qh5 | Kitploit
Tools/GitHubGitHub/abraxas/cakephp-smtp-crlf
SchwachstellenanalyseExploitationWebanwendungs-ExploitationSicherheitsvirtualisierungWebsicherheitPenetrationstestsE-Mail-Sicherheit
GitHubabraxas/cakephp-smtp-crlf

cakephp-smtp-crlf

CakePHP 5.4.2 - Hoch - Remote - Header-Injection - SmtpTransport einzelnes LF Überbleibsel von GHSA-2qh5

Repository anzeigen
1vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - cakephp-smtp-crlf

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

cakephp-smtp-crlf

Klasse: Mail-Header-Injection Reichweite: Remote

CakePHP 5.4.2 (887b641) - Cake Software Foundation

GHSA-2qh5 / CVE-2026-77634 fügte str_replace("\r\n", '', $val) in SmtpTransport und MailTransport hinzu. Dieser Callback ist ein No-op für ein einzelnes LF oder CR. Header-Namen werden weiterhin unsanitisiert konkateniert. PHP mail() und die SMTP DATA, die wir erfasst haben, behandeln ein einzelnes LF als neue Header-Zeile.

Wenn eine App Benutzerdaten in einen benutzerdefinierten Header kopiert, kann ein Angreifer Bcc hinzufügen, den Subject umschreiben oder durch Senden von LF statt CRLF in den Body eindringen. Der angekündigte Fix verhindert das nicht. Das Standard-cakephp/app fügt Request-Daten nicht von sich aus in benutzerdefinierte Header ein.

IDnoch keine CVE
KlasseMail-Header-Injection (Lone-LF-Überbleibsel von GHSA-2qh5)
ReichweiteRemote (wie GHSA-2qh5: App kopiert Benutzerdaten in Message::setHeaders)
CWECWE-93
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ProduktCakePHP
Betroffen5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
Authwie GHSA-2qh5: App kopiert Benutzerdaten in Message::setHeaders / addHeaders
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Erfordert eine Anwendung, die Request-Daten in benutzerdefinierte Mail-Header einfügt.

PrivilegMethode / SinkIm Lab bewiesen oder abgeleitet
Eine zusätzliche Bcc:-Zeile (oder Cc: / To:) in den SMTP-DATA-Header-Block einschleusensetHeaders(['X-Meta' => "ok\nBcc: [email protected]"]) dann SmtpTransport::sendIm Lab bewiesen. SMTP DATA und getHeadersString zeigen beide eine neue Bcc:-Zeile. Zeuge X-Oracle: CAKEPHP-SMTP-CRLF-WITNESS
Dieselbe Injection über MailTransportDerselbe Callback in MailTransport::sendIm Lab bewiesen an getHeadersString mit der MailTransport-Include-Liste und dem Strip-Callback. Dieses Lab ruft PHP mail() nicht auf
Einzelnes CR ebenso wie einzelnes LFok\rBcc: ...Im Lab bewiesen. Pair-only-Strip lässt \r übrig; Header-Parser, die auf CR/LF splitten, behandeln es als neue Zeile
Subject umschreiben oder in den Body eindringenWert enthält \nSubject: oder \n\nAbgeleitet aus derselben Konkatenation. Lab injizierte Bcc / X-Oracle, nicht Subject
Zusätzlicher Envelope-EmpfängerInjiziertes Bcc innerhalb DATAAbgeleitet. Manche MTAs parsen DATA neu. Cakes RCPT TO verwendet weiterhin nur setTo / setCc / setBcc am Message-Objekt
Zwei-Byte-\r\n-PaarGHSA-2qh5-StripIm Lab bewiesen geschlossen. Kontrolle konkateniert okBcc:...
Unauthentifizierte RCE auf einer Skeleton-Appnicht dieses ÜberbleibselGeschlossen
Multipart filename= CRLF5.4.2 entfernt bereits "/\r/\nGeschlossen

Wie ich es gefunden habe

Ich habe cakephp/cakephp 5.4.2 nach GHSA-2qh5, GHSA-fxf7, GHSA-vjqc und dem 5.4.2-filename=-Hinweis gepinnt. Die Transport-Tests senden nur "line one\r\nline two" und erwarten line oneline two.

SmtpTransport 5.4.2:

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

MailTransport verwendet denselben Callback. Message::getHeadersString mappt den Callback über Werte und macht dann $key . ': ' . $val.

Bereits festgehaltene Irrwege: GHSA-2qh5 als geschlossen betrachten und weitergehen; PHP mail() im Lab aufrufen (das Orakel ist SMTP DATA plus getHeadersString); das zu unauth RCE auf einer Skeleton-App aufblasen. Theater: eine Reverse Shell.

Lab

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

oder

cd lab
./run.sh

Composer cakephp/cakephp:5.4.2 in PHP 8.3. Loopback-SMTP-Sink auf 127.0.0.1:19410.

  1. Kontrolle: X-Meta = ok\r\nBcc: [email protected]\r\nX-Oracle: CAKEPHP-SMTP-CRLF-WITNESS. Ergebnis: ein Header X-Meta: okBcc: [email protected]: CAKEPHP-SMTP-CRLF-WITNESS.
  2. Fall LF: dieselbe Payload nur mit \n. Ergebnis: neue Bcc:- und X-Oracle:-Zeilen in SMTP DATA, Smtp getHeadersString und Mail getHeadersString.
  3. Fall CR: dasselbe nur mit \r. Dieselben zusätzlichen Zeilen.
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

Der Fix

Jedes \r oder \n in Header-Namen und -Werten entfernen oder ablehnen (wie der 5.4.2-filename=-Sanitizer). Einzelnes LF und einzelnes CR in den Transport-Tests abdecken, nicht nur das \r\n-Paar.

Referenzen

  • github.com/cakephp/cakephp Tag 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Mailer/Transport/SmtpTransport.php · src/Mailer/Transport/MailTransport.php · src/Mailer/Message.php
  • In der Nähe gepatcht (nur Paar): GHSA-2qh5-382h-3jpc / CVE-2026-77634
  • CWE-93

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen