Skip to content

build(deps): update dependency @hono/node-server to v1.19.18 [security] - #47

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/npm-hono-node-server-vulnerability
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/npm-hono-node-server-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Mar 4, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@hono/node-server 1.19.9 → 1.19.18 age confidence

@​hono/node-server has authorization bypass for protected static paths via encoded slashes in Serve Static Middleware

CVE-2026-29087 / GHSA-wc8c-qw6v-h7f6

More information

Details

Summary

When using @​hono/node-server's static file serving together with route-based middleware protections (e.g. protecting /admin/*), inconsistent URL decoding can allow protected static resources to be accessed without authorization.

In particular, paths containing encoded slashes (%2F) may be evaluated differently by routing/middleware matching versus static file path resolution, enabling a bypass where middleware does not run but the static file is still served.

Details

The routing layer and the node-server static handler normalize request paths differently. The router preserves %2F as a literal string when matching routes, while the static handler decodes %2F into / before resolving the filesystem path.

Example request:

  • /admin%2Fsecret.html

This may:

  • fail to match middleware intended for /admin/*, but
  • still be resolved by the static handler as /admin/secret.html under the configured static root.

This does not allow access outside the configured static root and is not a path traversal vulnerability.

Impact

An unauthenticated attacker could bypass route-based authorization protections for protected static resources by supplying paths containing encoded slashes.

Applications relying solely on route-based middleware to protect static subpaths under the same static root may have exposed those resources.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


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

CVE-2026-39406 / GHSA-92pp-h63x-v22m

More information

Details

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.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


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

GHSA-frvp-7c67-39w9

More information

Details

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.

Severity

  • CVSS Score: 5.9 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​hono/node-server: Backslash in the request path is parsed as a path separator, bypassing path-based access control at a reverse proxy

CVE-2026-126210 / GHSA-jpvv-r467-5p4w

More information

Details

Summary

@hono/node-server passes the raw request-target to the WHATWG URL parser, which treats a backslash in the path as / and then resolves .. segments. A request for /admin\secret or /public\..\admin/secret reaches the application as /admin/secret. A reverse proxy that follows RFC 3986 forwards the backslash unchanged and applies its path-based rules to the original path, so the request reaches a route the proxy is meant to block.

Details

A raw backslash is not allowed in a request-target (RFC 3986, RFC 9112 Section 3.2.1), and RFC 9112 Section 3.2 says a recipient should reject such a request rather than correct it. Proxies such as nginx on Linux, HAProxy and Envoy keep the backslash as an ordinary character, so they and the application see different paths.

The fix responds with 400 Bad Request to a request whose path contains a raw backslash, for HTTP/1.1, HTTP/2, absolute-form request-targets and WebSocket upgrades. A percent-encoded backslash and a backslash in the query string are still accepted.

Impact

An unauthenticated client can reach a route that a reverse proxy, load balancer or WAF in front of the application blocks by path.

This affects applications served by @hono/node-server behind a front component that makes path-based decisions and forwards a backslash unchanged. Access control inside the Hono application, such as middleware on /admin/*, runs on the rewritten path and is not affected.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

honojs/node-server (@​hono/node-server)

v1.19.18

Compare Source

Security fixes

This release includes a fix for the following security issue:

Backslash in the request path is parsed as a path separator, bypassing path-based access control at a reverse proxy

Affects: all requests. The raw request-target was passed to the WHATWG URL parser, which treats a backslash in the path as / and resolves .. segments, so /admin\secret reached the application as /admin/secret. A reverse proxy that forwards the backslash unchanged applied its path-based rules to the original path. GHSA-jpvv-r467-5p4w

A request whose path contains a raw backslash is now rejected with 400 Bad Request. A percent-encoded backslash (%5C) and a backslash in the query string are still accepted.


The same fix, together with two WebSocket fixes, ships in @hono/node-server v2.1.6. Users on 1.x who can upgrade to 2.x are encouraged to do so.

v1.19.17

Compare Source

v1.19.15

Compare Source

v1.19.14

Compare Source

What's Changed

  • fix: add custom inspect to lightweight Request/Response to prevent TypeError on console.log by @​usualoma in #​340

Full Changelog: honojs/node-server@v1.19.13...v1.19.14

v1.19.13

Compare Source

Security Fix

Fixed an issue in Serve Static Middleware where inconsistent handling of repeated slashes (//) between the router and static file resolution could allow middleware to be bypassed. Users of Serve Static Middleware are encouraged to upgrade to this version.

See GHSA-92pp-h63x-v22m for details.

v1.19.12

Compare Source

What's Changed

Full Changelog: honojs/node-server@v1.19.11...v1.19.12

v1.19.11

Compare Source

What's Changed

  • fix: do not overwrite Content-Length in the fast path pattern if Content-Length already exists. by @​usualoma in #​309

Full Changelog: honojs/node-server@v1.19.10...v1.19.11

v1.19.10

Compare Source

Security Fix

Fixed an authorization bypass in Serve Static Middleware caused by inconsistent URL decoding (%2F handling) between the router and static file resolution. Users of Serve Static Middleware are encouraged to upgrade to this version.

See GHSA-wc8c-qw6v-h7f6 for details.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from d84fff8 to 106c628 Compare March 5, 2026 20:59
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.10 [security] build(deps): update dependency @hono/node-server to v1.19.10 [security] - autoclosed Mar 27, 2026
@renovate renovate Bot closed this Mar 27, 2026
@renovate
renovate Bot deleted the renovate/npm-hono-node-server-vulnerability branch March 27, 2026 04:54
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.10 [security] - autoclosed build(deps): update dependency @hono/node-server to v1.19.10 [security] Mar 30, 2026
@renovate renovate Bot reopened this Mar 30, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch 2 times, most recently from 106c628 to 9e5d1c4 Compare March 30, 2026 20:50
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.10 [security] build(deps): update dependency @hono/node-server to v1.19.13 [security] Apr 8, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from 9e5d1c4 to d8e2318 Compare April 8, 2026 05:09
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.13 [security] build(deps): update dependency @hono/node-server to v1.19.13 [security] - autoclosed Apr 27, 2026
@renovate renovate Bot closed this Apr 27, 2026
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.13 [security] - autoclosed build(deps): update dependency @hono/node-server to v1.19.13 [security] Apr 27, 2026
@renovate renovate Bot reopened this Apr 27, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch 2 times, most recently from d8e2318 to 84d7791 Compare April 27, 2026 22:46
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.13 [security] build(deps): update dependency @hono/node-server to v2 [security] Jul 23, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch 2 times, most recently from 00f763c to 8236923 Compare July 30, 2026 17:47
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from 8236923 to 5defecd Compare August 11, 2026 23:51
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v2 [security] build(deps): update dependency @hono/node-server to v1.19.13 [security] Aug 12, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from 5defecd to 2d6172e Compare August 12, 2026 21:52
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.13 [security] build(deps): update dependency @hono/node-server to v1.19.15 [security] Aug 26, 2026
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from 2d6172e to 998af8c Compare November 2, 2026 20:55
@renovate
renovate Bot force-pushed the renovate/npm-hono-node-server-vulnerability branch from 998af8c to 264cbaa Compare November 11, 2026 18:55
@renovate renovate Bot changed the title build(deps): update dependency @hono/node-server to v1.19.15 [security] build(deps): update dependency @hono/node-server to v1.19.18 [security] Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants