Skip to content

Laravel CVE-2026-48019 : injection CRLF dans l'email, patch en 12.60.0 et 13.10.0

Le CERT-FR publie l'avis CERTFR-2026-AVI-0670 sur CVE-2026-48019, une faille CRLF dans la validation d'email de Laravel. Patch obligatoire en 12.60.0 ou 13.10.0.

Publié le 4 min de lecture

Le CERT-FR a publié le 1er juin 2026 l'avis CERTFR-2026-AVI-0670, qui acte la divulgation publique de CVE-2026-48019, une injection CRLF dans la logique de validation d'email du framework Laravel. La faille permet à un attaquant qui contrôle une adresse email soumise par l'application — formulaire de contact, inscription, demande de reset, n'importe quel point d'entrée standard — de manipuler les en-têtes du courrier sortant en injectant des caractères de retour chariot. Bug noté CWE-93 côté MITRE.

Les versions vulnérables sont Laravel 12.x antérieures à 12.60.0 et Laravel 13.x jusqu'à 13.9.0 inclus. Les correctifs sont publiés en 12.60.0 et 13.10.0. La divulgation initiale est attribuée au chercheur OmarXtream via l'avis GitHub GHSA-5vg9-5847-vvmq publié sur le dépôt laravel/framework.

Ce que permet la faille

La routine de validation d'email par défaut de Laravel — celle qui couvre les règles email, email:rfc, email:strict et les variantes — ne neutralise pas les séquences \r\n insérées dans la partie locale ou la partie domaine d'une adresse. Lorsqu'une adresse ainsi construite est transmise au pipeline d'envoi de Laravel, qui s'appuie sur Symfony Mailer et Symfony Mime pour la sérialisation finale, l'attaquant peut injecter des en-têtes SMTP supplémentaires : Bcc: discrets vers une adresse externe, Reply-To: détourné vers un domaine d'hameçonnage, Content-Type: modifié pour reformater le corps du message.

Les conséquences exploitables : abus du relais SMTP de l'application pour expédier du courrier au nom du domaine légitime, exfiltration silencieuse des emails transactionnels via Bcc:, détournement des liens de reset de mot de passe vers un compte attaquant, et plus largement perte de confiance du domaine émetteur (note SPF/DKIM/DMARC dégradée si les destinataires marquent les messages comme spam).

À noter : la faille Symfony CVE-2026-45067 documente le même type d'injection dans Symfony\Component\Mime\Address. Les deux avis sont complémentaires — un parc Laravel patché en 12.60.0 qui consomme une version Symfony toujours vulnérable n'est pas mis à l'abri par le seul patch Laravel. Vérifier les deux côtés.

Statut d'exploitation

Aucune exploitation active dans la nature au moment de la publication de l'avis CERT-FR. Ni l'avis ANSSI, ni le bulletin GitHub laravel/framework, ni la divulgation de OmarXtream ne mentionnent de campagne identifiée. Cela ne dispense pas du correctif : la faille touche un chemin de code que la quasi-totalité des applications Laravel utilise en production, et un PoC publié déclencherait immédiatement un balayage opportuniste des formulaires publics.

Que faire

  1. Mettre à jour le framework. Branche 12.x12.60.0 au minimum. Branche 13.x13.10.0. Sur les déploiements gérés via Composer, composer update laravel/framework --with-all-dependencies puis rejouer la suite de tests. Vérifiez aussi les dépendances symfony/mailer et symfony/mime pour CVE-2026-45067 dans le même cycle.
  2. Inventorier les points d'entrée email. Tous les FormRequest qui valident un champ email — inscription, login, mot de passe oublié, contact, newsletter, support — sont des surfaces d'attaque tant que le patch n'est pas déployé. Si un déploiement immédiat n'est pas possible, ajouter une règle regex:/^[^\r\n]+$/ en complément de la règle email sur ces champs traite le symptôme en attendant.
  3. Auditer les logs SMTP sur les 30 derniers jours pour repérer une éventuelle exploitation antérieure à la divulgation : Bcc: inhabituels, Reply-To: ne correspondant pas à l'expéditeur attendu, Content-Type: non standards émis par votre application. Les serveurs MTA conservent généralement l'en-tête brut tel qu'envoyé par l'application.
  4. Vérifier les politiques SPF/DKIM/DMARC. Si votre domaine n'a pas DMARC en p=quarantine ou p=reject, un abus de votre relais SMTP par cette faille devient immédiatement opérationnel pour de l'hameçonnage tiers. Profitez du cycle de patch pour serrer la politique.

Contexte

L'écosystème Laravel a aligné en quelques semaines une série de divulgations dont les surfaces se recouvrent : la compromission supply-chain de laravel-lang le 22 mai (Composer, voleur d'identifiants), la CVE-2026-4809 dans plank/laravel-mediable (upload de fichier arbitraire menant à du RCE), et désormais cette CVE-2026-48019 dans la validation email du framework lui-même. Trois vecteurs distincts, trois équipes de maintenance distinctes, mais le résultat opérationnel est le même côté défense : un cycle de patch hors planning sur des applications PHP exposées.

Le mode opératoire CERT-FR — publier un avis dès qu'un correctif amont est disponible, sans attendre une exploitation observée — reste la meilleure défense pour les équipes francophones qui n'ont pas la bande passante de surveiller chaque dépôt GitHub upstream. L'avis CERTFR-2026-AVI-0670 liste les versions corrigées et renvoie au bulletin éditeur.

Articles liés