Hono: SSE Control Field Injection via CR/LF in writeSSE()
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using streamSSE() in Streaming Helper, the event, id, and retry fields were not validated for carriage return (\r) or newline (\n) characters. Because the SSE protocol uses line breaks as field delimiters, this could allow injection of additional SSE fields within the same event frame if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-29085
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 08:19 UTC · Revision 1
Source evidence
Hono: SSE Control Field Injection via CR/LF in writeSSE()
core-osv · Original sourcePublished 4 Mar 2026, 22:09 UTC
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using streamSSE() in Streaming Helper, the event, id, and retry fields were not validated for carriage return (\r) or newline (\n) characters. Because the SSE protocol uses line breaks as field delimiters, this could allow injection of additional SSE fields within the same event frame if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.
osv:CVE-2026-29085
Complete source record
{
"id": "9d111b819ab3b1d808ae9d27b5c2cbd08ce6e3ce6ed350121166656d7004eedf",
"url": "https://osv.dev/vulnerability/CVE-2026-29085",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Hono: SSE Control Field Injection via CR/LF in writeSSE()",
"summary": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using streamSSE() in Streaming Helper, the event, id, and retry fields were not validated for carriage return (\\r) or newline (\\n) characters. Because the SSE protocol uses line breaks as field delimiters, this could allow injection of additional SSE fields within the same event frame if untrusted input was passed into these fields. This issue has been patched in version 4.12.4.",
"evidence": "osv:CVE-2026-29085",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-29085",
"aliases": [
"CVE-2026-29085",
"GHSA-p6xx-57qc-3wxr"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/honojs/hono",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "19d20d23a2921e26c3bbfdb5549fce98b4a39b28"
},
{
"fixed": "f4123ed9ea3c7c52380cc99a079a4d773838846e"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "4.12.4"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "f4123ed9ea3c7c52380cc99a079a4d773838846e"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v4.12.3",
"v4.12.2",
"v4.12.1",
"v4.12.0",
"v4.11.10",
"v4.11.9",
"v4.11.8",
"v4.11.7",
"v4.11.6",
"v4.11.5",
"v4.11.4",
"v4.11.3",
"v4.11.2",
"v4.11.1",
"v4.11.0",
"v4.10.8",
"v4.10.7",
"v4.10.6",
"v4.10.5",
"v4.10.4",
"v4.10.3",
"v4.10.2",
"v4.10.1",
"v4.10.0",
"v4.9.12",
"v4.9.11",
"v4.9.10",
"v4.9.9",
"v4.9.8",
"v4.9.7",
"v4.9.6",
"v4.9.5",
"v4.9.4",
"v4.9.3",
"v4.9.2",
"v4.9.1",
"v4.9.0",
"v4.8.12",
"v4.8.11",
"v4.8.10",
"v4.8.9",
"v4.8.8",
"v4.8.7",
"v4.8.6",
"v4.8.5",
"v4.8.4",
"v4.8.3",
"v4.8.2",
"v4.8.1",
"v4.8.0",
"v4.7.11",
"v4.7.10",
"v4.7.9",
"v4.7.8",
"v4.7.7",
"v4.7.6",
"v4.7.5",
"v4.7.4",
"v4.7.3",
"v4.7.2",
"v4.7.1",
"v4.7.0",
"v4.6.20",
"v4.6.19",
"v4.6.18",
"v4.6.17",
"v4.6.16",
"v4.6.15",
"v4.6.14",
"v4.6.13",
"v4.6.12",
"v4.6.11",
"v4.6.10",
"v4.6.9",
"v4.6.8",
"v4.6.7",
"v4.6.6",
"v4.6.5",
"v4.6.4",
"v4.6.3",
"v4.6.2",
"v4.6.1",
"v4.6.0",
"v4.5.11",
"v4.5.10",
"v4.5.9",
"v4.5.8",
"v4.5.7",
"v4.5.6",
"v4.5.5",
"v4.5.4",
"v4.5.3",
"v4.5.2",
"v4.5.1",
"v4.5.0",
"v4.4.13",
"v4.4.12",
"v4.4.11",
"v4.4.10",
"v4.5.0-rc.2",
"v4.4.9",
"v4.4.8",
"v4.4.7",
"v4.4.6",
"v4.5.0-rc.1",
"v4.4.5",
"v4.4.4",
"v4.4.3",
"v4.4.2",
"v4.4.1",
"v4.4.0",
"v4.3.11",
"v4.3.10",
"v4.3.9",
"v4.3.8",
"v4.3.7",
"v4.3.6",
"v4.3.5",
"v4.3.4",
"v4.3.3",
"v4.3.2",
"v4.3.1",
"v4.3.0",
"v4.2.9",
"v4.2.8",
"v4.2.7",
"v4.2.6",
"v4.2.5",
"v4.2.4",
"v4.2.3",
"v4.2.2",
"v4.2.1",
"v4.2.0",
"v4.1.7",
"v4.1.6",
"v4.1.5",
"v4.1.4",
"v4.1.3",
"v4.1.2",
"v4.1.1",
"v4.1.0",
"v4.0.10",
"v4.1.0-rc.1",
"v4.0.9",
"v4.0.8",
"v4.0.7",
"v4.0.6",
"v4.0.5",
"v4.0.4",
"v4.0.3",
"v4.0.2",
"v4.0.1",
"v4.0.0",
"v3.12.12",
"v3.12.11",
"v3.12.10",
"v3.12.9",
"v4.0.0-rc.3",
"v3.12.8",
"v3.12.7",
"v4.0.0-rc.2",
"v3.12.6",
"v4.0.0-rc.1",
"v3.12.5",
"v3.12.4",
"v3.12.3",
"v3.12.2",
"v4.0.0-rc.0",
"v3.12.1",
"v3.12.0",
"v3.11.12",
"v3.11.11",
"v3.11.10",
"v3.11.9",
"v3.11.8",
"v3.11.7",
"v3.11.6",
"v3.11.5",
"v3.11.4",
"v3.11.3",
"v3.11.2",
"v3.11.1",
"v3.11.0",
"v3.10.5",
"v3.10.4",
"v3.10.3",
"v3.10.2",
"v3.10.1",
"v3.10.0",
"v3.9.2",
"v3.9.1",
"v3.9.0",
"v3.9.0-rc.1",
"v3.8.4",
"v3.8.3",
"v3.8.2",
"v3.8.1",
"v3.8.0",
"v3.8.0-rc.3",
"v3.7.6",
"v3.8.0-rc.2",
"v3.7.5",
"v3.8.0-rc.1",
"v3.7.4",
"v3.7.3",
"v3.7.2",
"v3.7.1",
"v3.7.0",
"v3.6.3",
"v3.6.2",
"v3.6.1",
"v3.6.0",
"v3.6.0-rc.2",
"v3.6.0-rc.1",
"v3.5.8",
"v3.5.7",
"v3.5.6",
"v3.5.5",
"v3.5.4",
"v3.5.3",
"v3.5.2",
"v3.5.1",
"v3.5.0",
"vv3.5.0-rc.1",
"v3.4.3",
"v3.4.2",
"v3.4.1",
"v3.4.0",
"v3.3.4",
"v3.3.3",
"v3.3.2",
"v3.3.1",
"v3.3.0",
"v3.3.0-rc.1",
"v3.2.7",
"v3.2.6",
"v3.2.5",
"v3.2.4",
"v3.2.3",
"v3.2.2",
"v3.2.1",
"v3.2.0",
"v3.2.0-rc.3",
"v3.2.0-rc.1",
"v3.1.8",
"v3.1.7",
"v3.1.6",
"v3.1.5",
"v3.1.4",
"v3.1.3",
"v3.1.2",
"v3.1.1",
"v3.1.0",
"v3.0.5",
"v3.0.4",
"v3.0.3",
"v3.0.2",
"v3.0.1",
"v3.0.0",
"v3.0.0-rc.16",
"v3.0.0-rc.15",
"v2.7.8",
"v3.0.0-rc.14",
"v3.0.0-rc.13",
"v2.7.7",
"v2.7.6",
"v3.0.0-rc.9",
"v3.0.0-rc.10",
"v2.7.5",
"v2.7.4",
"v2.7.3",
"v3.0.0-rc.5",
"v2.7.2",
"v3.0.0-rc.4",
"v2.7.1",
"v2.7.0",
"v2.6.2",
"v2.6.1",
"v2.6.0",
"v2.5.10",
"v2.5.9",
"v2.5.8",
"v2.5.7",
"v2.5.6",
"v2.5.5",
"v2.5.4",
"v2.5.3",
"v2.5.2",
"v2.5.1",
"v2.5.0",
"v2.4.1",
"v2.4.0",
"v2.3.2",
"v2.3.1",
"v2.3.0",
"v2.2.5",
"v2.2.4",
"v2.2.3",
"v2.2.2",
"v2.2.1",
"v2.2.0",
"v2.1.4",
"v2.1.3",
"v2.1.2",
"v2.1.1",
"v2.1.0",
"v2.0.9",
"v2.0.8",
"v2.0.7",
"v2.0.6",
"v2.0.5",
"v2.0.4",
"v2.0.3",
"v2.0.2",
"v2.0.1",
"v2.0.0",
"v1.6.5-0",
"v1.6.4",
"v1.6.3",
"v1.6.2",
"v1.6.1",
"v1.6.0",
"v1.6.0-0",
"v1.5.2",
"v1.5.1",
"v1.5.0",
"v1.4.7",
"v1.4.6",
"v1.4.5",
"v1.4.4",
"v1.4.3",
"v1.4.2",
"v1.4.1",
"v1.4.0",
"v1.3.6",
"v1.3.5",
"v1.3.4",
"v1.3.3",
"v1.3.2",
"v1.3.1",
"v1.3.0",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.1",
"v1.1.0",
"v1.0.0",
"v0.5.10",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.8",
"v0.3.7",
"v0.3.6",
"v0.3.5",
"v0.3.4",
"v0.3.3",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.4",
"v0.2.3",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.0",
"v0.0.16",
"v0.0.15",
"v0.0.14",
"v0.0.13",
"v0.0.11",
"v0.0.10",
"v0.0.9",
"v0.0.8",
"v0.0.7",
"v0.0.5",
"v0.0.4",
"v0.0.2",
"v0.0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29085.json"
}
}
],
"modified": "2026-10-28T02:30:50.599803103Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29085.json",
"https://github.com/honojs/hono/security/advisories/GHSA-p6xx-57qc-3wxr",
"https://nvd.nist.gov/vuln/detail/CVE-2026-29085",
"https://github.com/honojs/hono/commit/f4123ed9ea3c7c52380cc99a079a4d773838846e"
],
"provider_metadata": {
"cwe_ids": [
"CWE-74"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29085.json"
}
},
"related_cves": [
{
"value": "CVE-2026-29085",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 518732,
"published_at": "2026-03-04T22:09:45.58+00:00"
}