Symfony: Email Header / SMTP Command Injection via CRLF in Symfony\Component\Mime\Address
### 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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-45067
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 21:07 UTC · Revision 1
Source evidence
Symfony: Email Header / SMTP Command Injection via CRLF in Symfony\Component\Mime\Address
core-osv · Original sourcePublished 14 Jul 2026, 17:41 UTC
### 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.
osv:CVE-2026-45067
Complete source record
{
"id": "ec51093606a23166c2977f9fc51a5482a55a3aa21ed521a4052e9ca8d181cc96",
"url": "https://osv.dev/vulnerability/CVE-2026-45067",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Symfony: Email Header / SMTP Command Injection via CRLF in Symfony\\Component\\Mime\\Address",
"summary": "### 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.",
"evidence": "osv:CVE-2026-45067",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-45067",
"aliases": [
"CVE-2026-45067",
"GHSA-qpmx-3rfj-7rhv"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/symfony/symfony",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "eabc5f9ed7831fe6de8d609c5ebc29aed1f8ef8f"
},
{
"introduced": "67778bf0d384584bc59bb618a91ef6b08e9153c6"
},
{
"fixed": "95a951788e30c45356278f4e4472cbbf552d0eb9"
},
{
"introduced": "ed57652df42aef294f411ef53dcfa5d6b7da2f90"
},
{
"fixed": "275f5cbccbcc50205206f05e599c4f57009aadb8"
},
{
"introduced": "eca48f1c4682ee0c55a2d320ca25d8292ed48f75"
},
{
"fixed": "06d3b2c9a8aeb5d8493738cc51e24f6a1215827c"
},
{
"fixed": "a1c42cbe517bc146a54da7505a107ded317478fe"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "5.4.52"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "6.0.0-BETA1"
},
{
"fixed": "6.4.40"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "7.0.0-BETA1"
},
{
"fixed": "7.4.12"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "8.0.0-BETA1"
},
{
"fixed": "8.0.12"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "a1c42cbe517bc146a54da7505a107ded317478fe"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "eabc5f9ed7831fe6de8d609c5ebc29aed1f8ef8f"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v5.4.52"
},
{
"range": [
{
"fixed": "95a951788e30c45356278f4e4472cbbf552d0eb9"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v6.4.40"
},
{
"range": [
{
"fixed": "275f5cbccbcc50205206f05e599c4f57009aadb8"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v7.4.12"
},
{
"range": [
{
"fixed": "06d3b2c9a8aeb5d8493738cc51e24f6a1215827c"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v8.0.12"
}
]
}
}
],
"versions": [
"v5.4.51",
"v8.0.11",
"v7.4.11",
"v6.4.39",
"v6.4.38",
"v8.0.10",
"v7.4.10",
"v8.0.9",
"v7.4.9",
"v6.4.37",
"v8.0.8",
"v7.4.8",
"v6.4.36",
"v8.0.7",
"v7.4.7",
"v6.4.35",
"v8.0.6",
"v7.4.6",
"v6.4.34",
"v8.0.5",
"v7.4.5",
"v6.4.33",
"v8.0.4",
"v7.4.4",
"v6.4.32",
"v8.0.3",
"v7.4.3",
"v6.4.31",
"v5.4.50",
"v8.0.2",
"v7.4.2",
"v8.0.1",
"v7.4.1",
"v6.4.30",
"v7.4.0",
"v8.0.0",
"v7.4.0-RC3",
"v8.0.0-RC3",
"v8.0.0-RC2",
"v7.4.0-RC2",
"v8.0.0-RC1",
"v7.4.0-RC1",
"v6.4.29",
"v5.4.49",
"v6.4.28",
"v8.0.0-BETA2",
"v7.4.0-BETA2",
"v6.4.27",
"v8.0.0-BETA1",
"v7.4.0-BETA1",
"v6.4.26",
"v6.4.25",
"v6.4.24",
"v6.4.23",
"v6.4.22",
"v7.3.0-RC1",
"v7.3.0-BETA2",
"v7.3.0-BETA1",
"v6.4.21",
"v6.4.20",
"v6.4.19",
"v6.4.18",
"v6.4.17",
"v6.4.16",
"v5.4.48",
"v7.2.0-RC1",
"v6.4.15",
"v5.4.47",
"v7.2.0-BETA2",
"v6.4.14",
"v5.4.46",
"v7.2.0-BETA1",
"v6.4.13",
"v5.4.45",
"v6.4.12",
"v5.4.44",
"v6.4.11",
"v5.4.43",
"v6.4.10",
"v5.4.42",
"v6.4.9",
"v5.4.41",
"v6.4.8",
"v5.4.40",
"v7.1.0-RC1",
"v7.1.0-BETA1",
"v6.4.7",
"v5.4.39",
"v6.4.6",
"v5.4.38",
"v6.4.5",
"v5.4.37",
"v6.4.4",
"v5.4.36",
"v6.4.3",
"v5.4.35",
"v6.4.2",
"v5.4.34",
"v6.4.1",
"v5.4.33",
"v6.4.0",
"v5.4.32",
"v6.4.0-RC2",
"v7.0.0-RC1",
"v6.4.0-RC1",
"v7.0.0-BETA3",
"v6.4.0-BETA3",
"v5.4.31",
"v7.0.0-BETA2",
"v6.4.0-BETA2",
"v5.4.30",
"v7.0.0-BETA1",
"v6.4.0-BETA1",
"v5.4.29",
"v5.4.28",
"v5.4.27",
"v5.4.26",
"v5.4.25",
"v5.4.24",
"v6.3.0-RC1",
"v6.3.0-BETA3",
"v6.3.0-BETA2",
"v6.3.0-BETA1",
"v5.4.23",
"v5.4.22",
"v5.4.21",
"v5.4.20",
"v5.4.19",
"v5.4.18",
"v5.4.17",
"v5.4.16",
"v6.2.0-BETA3",
"v6.2.0-BETA2",
"v5.4.15",
"v6.2.0-BETA1",
"v5.4.14",
"v5.4.13",
"v5.4.12",
"v5.4.11",
"v5.4.10",
"v5.4.9",
"v6.1.0-RC1",
"v6.1.0-BETA2",
"v5.4.8",
"v6.1.0-BETA1",
"v5.4.7",
"v5.4.6",
"v5.4.5",
"v5.4.3",
"v5.4.4",
"v5.4.2",
"v5.4.1",
"v5.4.0",
"v6.0.0-RC1",
"v5.4.0-RC1",
"v6.0.0-BETA3",
"v5.4.0-BETA3",
"v6.0.0-BETA2",
"v5.4.0-BETA2",
"v6.0.0-BETA1",
"v5.4.0-BETA1",
"v5.3.0-BETA4",
"v5.3.0-BETA3",
"v5.3.0-BETA2",
"v5.3.0-BETA1",
"v5.2.0-BETA3",
"v5.2.0-BETA2",
"v5.2.0-BETA1",
"v5.1.0-BETA1",
"v5.0.0-RC1",
"v5.0.0-BETA2",
"v5.0.0-BETA1",
"v4.3.0-BETA1",
"v4.2.0-BETA2",
"v4.2.0-BETA1",
"v4.0.0-BETA4",
"v4.0.0-BETA3",
"v4.0.0-BETA2",
"v4.0.0-BETA1",
"v3.3.0-BETA1",
"v3.2.0-RC1",
"v3.2.0-BETA1",
"v3.0.0",
"v3.0.0-BETA1",
"v2.6.0-BETA1",
"v2.5.0-BETA1",
"v2.5.0-BETA2",
"v2.4.0-BETA2",
"v2.4.0-BETA1",
"v2.3.0-BETA2",
"v2.3.0-BETA1",
"v2.2.0-BETA2",
"v2.2.0-BETA1",
"v2.1.0",
"v2.1.0-RC2",
"v2.1.0-RC1",
"v2.1.0-BETA4",
"v2.1.0-BETA3",
"v2.1.0-BETA2",
"v2.1.0-BETA1",
"v2.0.0",
"v2.0.0-RC6",
"v2.0.0-RC5",
"v2.0.0-RC4",
"v2.0.0-RC3",
"v2.0.0-RC2",
"v2.0.0-RC1",
"v2.0.0BETA5",
"v2.0.0BETA4",
"v2.0.0BETA3",
"v2.0.0BETA2",
"v2.0.0BETA1",
"vPR9",
"vPR8",
"v2.0.0PR8",
"vPR6",
"vPR5",
"vPR4",
"vPR3"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45067.json"
}
}
],
"modified": "2026-10-28T02:30:23.559419541Z",
"provider": "osv",
"references": [
"https://github.com/symfony/symfony/releases/tag/v5.4.52",
"https://github.com/symfony/symfony/releases/tag/v6.4.40",
"https://github.com/symfony/symfony/releases/tag/v7.4.12",
"https://github.com/symfony/symfony/releases/tag/v8.0.12",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45067.json",
"https://github.com/symfony/symfony/security/advisories/GHSA-qpmx-3rfj-7rhv",
"https://nvd.nist.gov/vuln/detail/CVE-2026-45067",
"https://github.com/symfony/symfony/commit/a1c42cbe517bc146a54da7505a107ded317478fe"
],
"provider_metadata": {
"cwe_ids": [
"CWE-93"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45067.json"
}
},
"related_cves": [
{
"value": "CVE-2026-45067",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 490085,
"published_at": "2026-07-14T17:41:53.874+00:00"
}