CVE-2026-29087

7.5 HIGH

📋 TL;DR

This vulnerability allows attackers to bypass route-based middleware protections in @hono/node-server applications by using URL-encoded slashes (%2F) in paths. When static file serving is configured with protected routes (like /admin/*), the inconsistent URL decoding between routing middleware and static file resolution can allow unauthorized access to protected resources. This affects all applications using @hono/node-server versions before 1.19.10 with static file serving and route-based access controls.

💻 Affected Systems

Products:
  • @hono/node-server
Versions: All versions before 1.19.10
Operating Systems: All operating systems running Node.js
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when using both static file serving AND route-based middleware protections (e.g., protecting specific paths like /admin/*). Applications without static file serving or without route-based protections are not affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain unauthorized access to sensitive static files (configuration files, credentials, admin interfaces, proprietary data) that should be protected by middleware authentication/authorization.

🟠

Likely Case

Unauthorized access to protected static resources like admin panels, configuration files, or sensitive documents that should require authentication.

🟢

If Mitigated

Even with proper controls, the vulnerability could still expose static files if the middleware protection relies solely on route matching without additional validation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires no authentication and involves simple URL manipulation with encoded slashes. The technique is well-known in web security (path traversal via encoded characters).

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.19.10

Vendor Advisory: https://github.com/honojs/node-server/security/advisories/GHSA-wc8c-qw6v-h7f6

Restart Required: Yes

Instructions:

1. Update @hono/node-server dependency to version 1.19.10 or later. 2. Update package.json: "@hono/node-server": "^1.19.10". 3. Run npm update or yarn upgrade. 4. Restart the Node.js application.

🔧 Temporary Workarounds

Disable static file serving for protected routes

all

Remove static file serving from routes that have middleware protections, or move protected static files outside of static serving directories.

Implement additional middleware validation

all

Add custom middleware that normalizes URLs (decodes %2F to /) before route matching to ensure consistent processing.

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block requests containing encoded slashes (%2F) in protected paths.
  • Move sensitive static files outside of publicly accessible directories and serve them through protected API endpoints instead.

🔍 How to Verify

Check if Vulnerable:

Check if your application uses @hono/node-server version <1.19.10 AND has static file serving configured with route-based middleware protections (e.g., protecting paths like /admin/*).

Check Version:

npm list @hono/node-server

Verify Fix Applied:

After updating to 1.19.10+, test that accessing protected routes with encoded slashes (e.g., /admin%2Ffile.txt) no longer bypasses middleware and returns appropriate access denied responses.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests containing %2F in paths that should be protected
  • Successful access to protected static files without authentication logs
  • 404 errors for encoded slash requests after patching

Network Indicators:

  • HTTP requests with encoded slashes targeting protected routes
  • Unusual file access patterns bypassing normal authentication flows

SIEM Query:

http.url:*%2F* AND (http.status:200 OR http.status:304) AND NOT user.authenticated:true

🔗 References

📤 Share & Export