CVE-2026-29045
Hono: Arbitrary file access via serveStatic vulnerability
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path. This issue has been patched in version 4.12.4.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
Hono: Arbitrary file access via serveStatic vulnerability
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path. This issue has been patched in version 4.12.4.
- Record
CVE-2026-29045- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-177
- Updated
- 2026-11-02
EUVDEUVD-2026-9506
7.5
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path. This issue has been patched in version 4.12.4.
- Record
EUVD-2026-9506- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q5qw-h33p-qvwr
7.5
Hono vulnerable to arbitrary file access via serveStatic vulnerability
Summary
When using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization.
The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path.
Details
The routing layer preserved %2F as a literal string, while serveStatic decoded it into / before resolving the file path.
Example:
Request: /admin%2Fsecret.html
- Router sees:
/admin%2Fsecret.html→ does not match/admin/* - Static handler resolves:
/admin/secret.html
As a result, static files under the configured static root could be served without triggering route-based protections.
This only affects applications that both:
- Protect subpaths using route-based middleware, and
- Serve files from the same static root using
serveStatic.
This does not allow access outside the static root and is not a path traversal vulnerability.
Impact
An unauthenticated attacker could bypass route-based authorization for protected static resources by supplying paths containing encoded slashes.
Applications relying solely on route-based middleware to protect static subpaths may have exposed those resources.
- Record
GHSA-q5qw-h33p-qvwr- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-177
- Updated
- 2026-11-02
NVD
7.5
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path. This issue has been patched in version 4.12.4.
- Record
CVE-2026-29045- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-177
- Updated
- 2026-11-02
OSV
7.5
Hono: Arbitrary file access via serveStatic vulnerability
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to version 4.12.4, when using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization. The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path. This issue has been patched in version 4.12.4.
- Record
CVE-2026-29045- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-177
- Updated
- 2026-11-02
OSVGHSA-q5qw-h33p-qvwr
7.5
Hono vulnerable to arbitrary file access via serveStatic vulnerability
Summary
When using serveStatic together with route-based middleware protections (e.g. app.use('/admin/*', ...)), inconsistent URL decoding allowed protected static resources to be accessed without authorization.
The router used decodeURI, while serveStatic used decodeURIComponent. This mismatch allowed paths containing encoded slashes (%2F) to bypass middleware protections while still resolving to the intended filesystem path.
Details
The routing layer preserved %2F as a literal string, while serveStatic decoded it into / before resolving the file path.
Example:
Request: /admin%2Fsecret.html
- Router sees:
/admin%2Fsecret.html→ does not match/admin/* - Static handler resolves:
/admin/secret.html
As a result, static files under the configured static root could be served without triggering route-based protections.
This only affects applications that both:
- Protect subpaths using route-based middleware, and
- Serve files from the same static root using
serveStatic.
This does not allow access outside the static root and is not a path traversal vulnerability.
Impact
An unauthenticated attacker could bypass route-based authorization for protected static resources by supplying paths containing encoded slashes.
Applications relying solely on route-based middleware to protect static subpaths may have exposed those resources.
- Record
GHSA-q5qw-h33p-qvwr- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-177
- Updated
- 2026-11-02
OSVCLSA-2026-1792232996 No score
TuxCare security update for hono (2 CVEs)
TuxCare rebuilt hono to address 2 CVEs. Fixed in 3.12.12-tuxcare.4.
- Record
CLSA-2026-1792232996- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-29045 No score
CVE-2026-29045 in @rootio/hono - Patched by Root
Root has patched CVE-2026-29045 in the @rootio/hono package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-29045- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
hononpm |
before 4.12.4 | 4.12.4 |
honoTuxCare:npm From an advisory covering 2 CVEs |
3.12.12-tuxcare.0 up to 3.12.12-tuxcare.4, plus listed versions 3.12.123.12.12-tuxcare.13.12.12-tuxcare.23.12.12-tuxcare.3 |
3.12.12-tuxcare.4 |
@rootio/honoRoot:npm |
before 4.11.7-root.io.1 | 4.11.7-root.io.14.11.7-root.io.24.11.7-root.io.34.11.7-root.io.44.11.7-root.io.54.11.7-root.io.6 |
honoRoot:npm |
before 4.11.7-aikido.5 | 4.11.7-aikido.54.11.7-aikido.6 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-29045 is a high vulnerability (CVSS 7.5) in Hono, published March 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.59%, the 48th percentile. Fixed in hono 4.12.4.
References
github.com/honojs/hono/security/advisories/GHSA-q5qw-h33p-qvwr
github.com/honojs/hono/commit/6a0607a929d888893f0c91d92dce2fcfdb3662a3
nvd.nist.gov/vuln/detail/CVE-2026-29045
github.com/advisories/GHSA-q5qw-h33p-qvwr
github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29045.json
github.com/honojs/hono