Hono: Incomplete fix for CVE-2026-39408: `toSSG()` still writes files outside the output directory
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
Hono is a Web application framework that provides support for any JavaScript runtime. From 4.12.12 until 4.13.5, the fix released for CVE-2026-39408 does not cover every traversal sequence, and toSSG() can still write files outside the configured output directory when a route parameter contains consecutive parent-directory segments. Static site generation builds each output path from the route path and values supplied through ssgParams, then verifies that the result stays inside the output directory using the same normalization routine that built the path. That routine does not fully collapse runs of consecutive parent-directory segments, allowing a path that the check accepts to resolve outside the output directory, and the check also treats output directories that differ in how they are rooted as equivalent. This arises when an application generates a static site from route parameter values it does not fully control, such as slugs from a CMS, API, or user submission. An untrusted ssgParams value can create or overwrite files elsewhere in the build environment and alter generated artifacts or deployment output. The vulnerability affects build-time static site generation only; request-time routing and applications with entirely developer-controlled ssgParams values are not affected. This issue is fixed in version 4.13.5.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| honojs | hono | before 4.13.5 | 4.13.5 | Patch available | CNA |
| — | hono (npm) | before 4.13.5 | 4.13.5 | Patch available | GHSA-gqvv-2mrq-wpjv |
- hono Vendorhonojs Affected before 4.13.5 Fixed in 4.13.5 Patch available CNA
- hono (npm) Vendor— Affected before 4.13.5 Fixed in 4.13.5 Patch available GHSA-gqvv-2mrq-wpjv
Remediation
- Fix · CNA hono (honojs) Fixed in 4.13.5
- Fix · GHSA-gqvv-2mrq-wpjv hono (npm) Fixed in 4.13.5 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-84365
- 2026-10-03 Alias added: GHSA-gqvv-2mrq-wpjv
References
More honojs vulnerabilities
- TI-2024-21741 Hono vulnerable to Restricted Directory Traversal in serveStatic with deno CVSS 3.1MEDIUM 5.3
- TI-2024-15441 @hono/node-server can't handle "double dots" in URL CVSS 3.1MEDIUM 5.3
- TI-2024-32610 Hono vulnerable to bypass of CSRF Middleware by a request without Content-Type header. CVSS 3.1MEDIUM 5.9
- TI-2024-29381 Hono CSRF middleware can be bypassed using crafted Content-Type header CVSS 3.1MEDIUM 5.0
- TI-2026-39189 Hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest CVSS 3.1MEDIUM 4.8
- TI-2026-23190 Hono: Arbitrary file access via serveStatic vulnerability CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-84365 · CVE Program
- CVE-2026-84365 · NVD
- FIRST EPSS
- GHSA-gqvv-2mrq-wpjv · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences