Every CVE Search/ Get API key

CVE-2026-39406

@hono/node-server has a middleware bypass via repeated slashes in serveStatic

5.3 MediumFix available

@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.

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
Low
Integrity
None
Availability
None

Exploit likelihood

0.38%Up 0.3 points since Apr 9, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

@hono/node-server has a middleware bypass via repeated slashes in serveStatic

@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.

Record
CVE-2026-39406
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
EUVDEUVD-2026-20491 5.3

@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.

Record
EUVD-2026-20491
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-92pp-h63x-v22m 5.3

@hono/node-server: Middleware bypass via repeated slashes in serveStatic

Summary

A path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path.

When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass.

Details

The routing layer and serveStatic handle repeated slashes differently.

For example:

  • /admin/secret.txt => matches /admin/*
  • //admin/secret.txt => may not match /admin/*

This inconsistency allows a request such as:

GET //admin/secret.txt

to bypass middleware registered on /admin/* and access protected files.

Impact

An attacker can access static files that are intended to be protected by route-based middleware by using repeated slashes in the request path.

This can lead to unauthorized access to sensitive files under the static root.

This issue affects applications that rely on serveStatic together with route-based middleware for access control.

Record
GHSA-92pp-h63x-v22m
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
GitHub AdvisoriesGHSA-frvp-7c67-39w9 5.9

Node.js Adapter for Hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)

The same as the hono core Path traversal in serve-static on Windows via encoded backslash (%5C).

Summary

On Windows hosts, an encoded backslash (%5C) in the request path decodes to \, which the Windows path resolver treats as a separator. serve-static then resolves a single URL segment such as admin\secret.txt into a nested file under the root and serves it, letting an attacker read static files meant to be protected behind prefix-mounted middleware. Directory escape (..) remains blocked.

Details

The router splits paths only on /, so /admin%5Csecret.txt is one segment and middleware on /admin/* does not run. The serve-static guard rejects ./.. and consecutive separators but lets a lone \ through; on Windows the file resolver re-splits it into the protected subtree.

This affects Windows hosts serving static files via the Node, Bun, or Deno adapters that guard a static subtree with prefix-mounted middleware.

Impact

An unauthenticated attacker can read static files under a middleware-guarded prefix on Windows hosts. The read stays within the configured root; escape outside the root is not possible.

Record
GHSA-frvp-7c67-39w9
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
NVD 5.3

@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.

Record
CVE-2026-39406
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
OSV 5.3

@hono/node-server has a middleware bypass via repeated slashes in serveStatic

@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.

Record
CVE-2026-39406
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
Show 7 moreShow less
OSVGHSA-92pp-h63x-v22m 5.3

@hono/node-server: Middleware bypass via repeated slashes in serveStatic

Summary

A path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path.

When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass.

Details

The routing layer and serveStatic handle repeated slashes differently.

For example:

  • /admin/secret.txt => matches /admin/*
  • //admin/secret.txt => may not match /admin/*

This inconsistency allows a request such as:

GET //admin/secret.txt

to bypass middleware registered on /admin/* and access protected files.

Impact

An attacker can access static files that are intended to be protected by route-based middleware by using repeated slashes in the request path.

This can lead to unauthorized access to sensitive files under the static root.

This issue affects applications that rely on serveStatic together with route-based middleware for access control.

Record
GHSA-92pp-h63x-v22m
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
OSVGHSA-frvp-7c67-39w9 5.9

Node.js Adapter for Hono: Path traversal in `serve-static` on Windows via encoded backslash (`%5C`)

The same as the hono core Path traversal in serve-static on Windows via encoded backslash (%5C).

Summary

On Windows hosts, an encoded backslash (%5C) in the request path decodes to \, which the Windows path resolver treats as a separator. serve-static then resolves a single URL segment such as admin\secret.txt into a nested file under the root and serves it, letting an attacker read static files meant to be protected behind prefix-mounted middleware. Directory escape (..) remains blocked.

Details

The router splits paths only on /, so /admin%5Csecret.txt is one segment and middleware on /admin/* does not run. The serve-static guard rejects ./.. and consecutive separators but lets a lone \ through; on Windows the file resolver re-splits it into the protected subtree.

This affects Windows hosts serving static files via the Node, Bun, or Deno adapters that guard a static subtree with prefix-mounted middleware.

Impact

An unauthenticated attacker can read static files under a middleware-guarded prefix on Windows hosts. The read stays within the configured root; escape outside the root is not possible.

Record
GHSA-frvp-7c67-39w9
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-22
Updated
2026-11-02
OSVCLSA-2026-1793191261 No score

TuxCare security update for @hono/node-server (2 CVEs)

TuxCare rebuilt @hono/node-server to address 2 CVEs. Fixed in 1.19.11-tuxcare.1.

Record
CLSA-2026-1793191261
Updated
2026-11-02
OSVCLSA-2026-1793207176 No score

TuxCare security update for @hono/node-server (1 CVE)

TuxCare rebuilt @hono/node-server to address 1 CVE. Fixed in 1.19.10-tuxcare.1.

Record
CLSA-2026-1793207176
Updated
2026-11-02
OSVCLSA-2026-1793209463 No score

TuxCare security update for @hono/node-server (1 CVE)

TuxCare rebuilt @hono/node-server to address 1 CVE. Fixed in 1.19.9-tuxcare.2.

Record
CLSA-2026-1793209463
Updated
2026-11-02
OSVCLSA-2026-1793630460 No score

TuxCare security update for @hono/node-server (1 CVE)

TuxCare rebuilt @hono/node-server to address 1 CVE. Fixed in 1.19.10-tuxcare.2.

Record
CLSA-2026-1793630460
Updated
2026-11-02
OSVCLSA-2026-1793630496 No score

TuxCare security update for @hono/node-server (1 CVE)

TuxCare rebuilt @hono/node-server to address 1 CVE. Fixed in 1.19.9-tuxcare.3.

Record
CLSA-2026-1793630496
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
@hono/node-server
npm
before 1.19.13
1.19.13
@hono/node-server
npm
2.0.0 up to 2.0.5
2.0.5
@hono/node-server
npm
before 1.19.15
1.19.15
@hono/node-server
TuxCare:npm
1.19.11-tuxcare.0 up to 1.19.11-tuxcare.1, plus listed versions
1.19.11
1.19.11-tuxcare.1
@hono/node-server
TuxCare:npm
1.19.10-tuxcare.0 up to 1.19.10-tuxcare.1, plus listed versions
1.19.10
1.19.10-tuxcare.1
@hono/node-server
TuxCare:npm
1.19.9-tuxcare.0 up to 1.19.9-tuxcare.2, plus listed versions
1.19.91.19.9-tuxcare.1
1.19.9-tuxcare.2
@hono/node-server
TuxCare:npm
1.19.10-tuxcare.0 up to 1.19.10-tuxcare.2, plus listed versions
1.19.101.19.10-tuxcare.1
1.19.10-tuxcare.2
@hono/node-server
TuxCare:npm
1.19.9-tuxcare.0 up to 1.19.9-tuxcare.3, plus listed versions
1.19.91.19.9-tuxcare.11.19.9-tuxcare.2
1.19.9-tuxcare.3

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-39406 is a medium vulnerability (CVSS 5.3) in Hono Node-server, published April 8, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.38%, the 32nd percentile. Fixed in @hono/node-server 1.19.13.

References

Show 5 moreShow less
MoveEnter Open