symfony/symfony security advisory
CVE-2026-45067: Email Header / SMTP Command Injection via CRLF in Symfony\Component\Mime\Address
CVE-2026-45067 is a high-severity command injection vulnerability in the PHP package symfony/symfony (CVSS 6.3), published 14 July 2026. It is fixed in 5.4.52, 6.4.40, 7.4.12 and 8.0.12, one per release line; earlier versions on each line are affected. It can be exploited without an account.
high 6.3 published 2026-07-14
- Affected versions
- >= 2.0.0, < 5.4.52
>= 6.0.0, < 6.4.40
>= 7.0.0, < 7.4.12
>= 8.0.0, < 8.0.12 - Fixed in
- 5.4.52, 6.4.40, 7.4.12, 8.0.12
- Newest release
- 8.1.10
- Severity
- High · CVSS 6.3
- Type
- Command injection
CWE-93 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your symfony/symfony version affected?
Who can exploit CVE-2026-45067
- Access: No account. Anyone who can send a request to an app that uses the affected code.
- Conditions: It only works under specific conditions the attacker does not fully control (CVSS rates the attack as high complexity).
CVSS vector (scored by GitHub): CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
How to fix CVE-2026-45067 in symfony/symfony
- Find the installed version:
composer show symfony/symfony. If you never required it yourself,composer why symfony/symfonyshows which package pulls it in. - Update it:
composer update symfony/symfony --with-all-dependencies. You need the fixed version for your release line (5.4.52, 6.4.40, 7.4.12 and 8.0.12). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"symfony/symfony": "^8.0.12"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-45067. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Do not pass user input to the affected process or shell call.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-45067 advisory
### Description `Symfony\Component\Mime\Address` is the value-object every Symfony Mailer address (to/cc/bcc/from/reply-to) flows through; its constructor is documented as validating the address and throwing on invalid input, so developers treat it as a security boundary. The constructor accepts email addresses whose local-part (the part before `@`) is an RFC-5322 *quoted string* containing raw `\r\n` bytes — e.g. `"x\r\nBcc: attacker@evil"@example.com`. The stored address is later emitted verbatim into (1) the rendered message headers and (2) `SmtpTransport`'s `MAIL FROM:<...>` / `RCPT TO:<...>` protocol lines, turning the embedded CRLF into a new mail header and/or a new SMTP command. ### Resolution The `Address` constructor now rejects addresses containing line breaks. The patch for this issue is available [here](https://github.com/symfony/symfony/commit/dc2dbd29211eb4ddc451373fa1374fb926e94604) for branch 5.4. ### Credits We would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.
References
- GitHub security advisory GHSA-qpmx-3rfj-7rhv github.com
- Symfony security advisory symfony.com
- Fix commit a1c42cb github.com
- Release v5.4.52 github.com
- Release v6.4.40 github.com
- Release v7.4.12 github.com
- Release v8.0.12 github.com
Other symfony/symfony advisories
- medium CVE-2026-45070: Email Header Injection via Non-Token Characters in Mime Parameter Names 2026-10-28
- CVE-2026-109449: Unbounded Nesting in the Expression Parser Lets Untrusted Expressions Crash the Process 2026-10-14
- high CVE-2026-108082: ReDoS in HeaderUtils::split() Reachable Through the Cache-Control Request Header 2026-09-15
- high CVE-2026-109413: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process 2026-08-30
- medium CVE-2026-47767: SymfonyRuntime CVE-2024-50340 Patch Bypass: Web Requests Can Still Set APP_ENV/APP_DEBUG via parse_str/SAPI Argv Mismatch 2026-06-09
- medium CVE-2026-48747: Mailomat Mailer Webhook Parser Reads the HMAC Algorithm from the Request: Signature Algorithm Downgrade 2026-05-26
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.