Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cakephp-smtp-crlf — CakePHP 5.4.2 - Élevée - À distance - Injection d'en-tête - SmtpTransport saut de ligne LF isolé résiduel de GHSA-2qh5 | Kitploit
Outils/GitHubGitHub/abraxas/cakephp-smtp-crlf
Analyse des VulnérabilitésExploitationExploitation d'Applications WebVirtualisation de SécuritéSécurité WebTests d'IntrusionSécurité des Emails
GitHubabraxas/cakephp-smtp-crlf

cakephp-smtp-crlf

CakePHP 5.4.2 - Élevée - À distance - Injection d'en-tête - SmtpTransport saut de ligne LF isolé résiduel de GHSA-2qh5

Voir le dépôt
15il y a 6 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - cakephp-smtp-crlf

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

Write-up : https://abraxaslabs.tech/research/cakephp-smtp-crlf

cakephp-smtp-crlf

Classe : Injection d'en-têtes de courrier Portée : Distante

CakePHP 5.4.2 (887b641) - Cake Software Foundation

GHSA-2qh5 / CVE-2026-77634 a ajouté str_replace("\r\n", '', $val) sur SmtpTransport et MailTransport. Ce callback est sans effet pour un LF ou un CR isolé. Les noms d'en-têtes sont toujours concaténés sans assainissement. La fonction PHP mail() et les données SMTP DATA que nous avons capturées traitent un LF isolé comme une nouvelle ligne d'en-tête.

Si une application copie des données utilisateur dans un en-tête personnalisé, un attaquant peut ajouter un Bcc, réécrire le Subject ou s'introduire dans le corps en envoyant un LF au lieu d'un CRLF. Le correctif annoncé ne l'empêche pas. Le squelette cakephp/app standard ne place pas de données de requête dans des en-têtes personnalisés de lui-même.

IDpas encore de CVE
ClasseInjection d'en-têtes de courrier (résidu de LF isolé de GHSA-2qh5)
PortéeDistante (identique à GHSA-2qh5 : l'application copie des données utilisateur dans Message::setHeaders)
CWECWE-93
CVSSÉlevé : 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ProduitCakePHP
Affecté5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
Authidentique à GHSA-2qh5 : l'application copie des données utilisateur dans Message::setHeaders / addHeaders
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

Ce qu'un attaquant peut faire

Nécessite une application qui place des données de requête dans des en-têtes de courrier personnalisés.

PrivilègeMéthode / sinkProuvé en lab ou déduit
Injecter une ligne Bcc: (ou Cc: / To:) supplémentaire dans le bloc d'en-têtes SMTP DATAsetHeaders(['X-Meta' => "ok\nBcc: [email protected]"]) puis SmtpTransport::sendProuvé en lab. SMTP DATA et getHeadersString affichent tous deux une nouvelle ligne Bcc:. Témoin X-Oracle: CAKEPHP-SMTP-CRLF-WITNESS
Même injection via MailTransportMême callback dans MailTransport::sendProuvé en lab sur getHeadersString avec la liste d'inclusion et le callback de suppression de MailTransport. Ce lab n'appelle pas la fonction PHP mail()
CR isolé ainsi que LF isoléok\rBcc: ...Prouvé en lab. La suppression par paire ne retire que \r ; les analyseurs d'en-têtes qui découpent sur CR/LF le traitent comme une nouvelle ligne
Réécrire Subject ou s'introduire dans le corpsLa valeur contient \nSubject: ou \n\nDéduit de la même concaténation. Le lab a injecté Bcc / X-Oracle, pas Subject
Destinataire d'enveloppe supplémentaireBcc injecté dans DATADéduit. Certains MTA ré-analysent DATA. Le RCPT TO de Cake utilise toujours uniquement setTo / setCc / setBcc sur l'objet Message
Paire \r\n de deux octetsSuppression GHSA-2qh5Prouvé en lab comme fermé. Le contrôle concatène okBcc:...
RCE non authentifiée sur une application squelettepas ce résiduFermé
CRLF dans filename= multipart5.4.2 supprime déjà "/\r/\nFermé

Comment je l'ai trouvé

J'ai épinglé cakephp/cakephp 5.4.2 après GHSA-2qh5, GHSA-fxf7, GHSA-vjqc et la note sur filename= de la 5.4.2. Les tests de transport envoient uniquement "line one\r\nline two" et attendent line oneline two.

SmtpTransport 5.4.2 :

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

MailTransport utilise le même callback. Message::getHeadersString applique le callback sur les valeurs, puis effectue $key . ': ' . $val.

Fausses pistes déjà consignées : considérer GHSA-2qh5 comme clos et passer à autre chose ; appeler mail() de PHP dans le labo (l'oracle est SMTP DATA plus getHeadersString) ; gonfler cela en RCE non authentifiée sur une application squelette. Théâtre : un reverse shell.

Labo

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

ou

cd lab
./run.sh

Composer cakephp/cakephp:5.4.2 en PHP 8.3. Réceptacle SMTP loopback sur 127.0.0.1:19410.

  1. Contrôle : X-Meta = ok\r\nBcc: [email protected]\r\nX-Oracle: CAKEPHP-SMTP-CRLF-WITNESS. Résultat : un en-tête X-Meta: okBcc: [email protected]: CAKEPHP-SMTP-CRLF-WITNESS.
  2. Cas LF : même charge utile avec \n uniquement. Résultat : nouvelles lignes Bcc: et X-Oracle: dans SMTP DATA, getHeadersString de Smtp et getHeadersString de Mail.
  3. Cas CR : idem avec \r uniquement. Mêmes lignes supplémentaires.
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

Le correctif

Supprimer ou rejeter tout \r ou \n dans les noms et valeurs d'en-têtes (comme le désinfectant filename= de la 5.4.2). Couvrir le LF seul et le CR seul dans les tests de transport, pas seulement la paire \r\n.

Références

  • github.com/cakephp/cakephp tag 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Mailer/Transport/SmtpTransport.php · src/Mailer/Transport/MailTransport.php · src/Mailer/Message.php
  • Correctif voisin (paire uniquement) : GHSA-2qh5-382h-3jpc / CVE-2026-77634
  • CWE-93

Licence

GNU Affero GPL v3.0. Voir LICENSE. Laboratoire en boucle locale uniquement. Aucune garantie.

Télécharger l’outil