Hono has a path traversal in toSSG() allows writing files outside the output directory
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-39408
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 00:53 UTC · Revision 1
Source evidence
Hono has a path traversal in toSSG() allows writing files outside the output directory
core-osv · Original sourcePublished 8 Apr 2026, 14:42 UTC
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.
osv:CVE-2026-39408
Complete source record
{
"id": "aa0b9c9f8cee727d5c90e6acaabc496a4a577483ae82e29d144774b73855f20b",
"url": "https://osv.dev/vulnerability/CVE-2026-39408",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Hono has a path traversal in toSSG() allows writing files outside the output directory",
"summary": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.",
"evidence": "osv:CVE-2026-39408",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-39408",
"aliases": [
"CVE-2026-39408",
"GHSA-xf4j-xp2r-rqqx"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/honojs/hono",
"type": "GIT",
"events": [
{
"introduced": "ca6f36511094522b84b6575d99bde4728bcea87c"
},
{
"fixed": "b470278920fffcfd6d76002755d6db53db827679"
},
{
"fixed": "c37ba26da9709ad03b803d1972773ed864b7e60d"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "4.0.0"
},
{
"last_affected": "4.12.11"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "b470278920fffcfd6d76002755d6db53db827679"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "c37ba26da9709ad03b803d1972773ed864b7e60d"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v4.12.12"
}
]
}
}
],
"versions": [
"v4.12.11",
"v4.12.10",
"v4.12.9",
"v4.12.8",
"v4.12.7",
"v4.12.6",
"v4.12.5",
"v4.12.4",
"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"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-39408.json"
}
}
],
"modified": "2026-10-28T02:30:45.595772755Z",
"provider": "osv",
"references": [
"https://github.com/honojs/hono/releases/tag/v4.12.12",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39408.json",
"https://github.com/honojs/hono/security/advisories/GHSA-xf4j-xp2r-rqqx",
"https://nvd.nist.gov/vuln/detail/CVE-2026-39408",
"https://github.com/honojs/hono/commit/b470278920fffcfd6d76002755d6db53db827679"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39408.json"
}
},
"related_cves": [
{
"value": "CVE-2026-39408",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 513629,
"published_at": "2026-04-08T14:42:25.357+00:00"
}