Cloudanix VulnDB

CVE-2026-54286

Medium · 5.9

CVSS

5.9

EPSS

0.4%

Published

Jun 22, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in some Windows-hosted web applications could let outsiders download files that were supposed to stay private.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
High
Impact
Data Exposure
Component
Web Framework
Class
Path Traversal
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a Windows-specific path traversal / static file exposure issue in Hono prior to version 4.12.25. When Hono's static file serving logic processes a request path containing an encoded backslash such as %5C, the value is decoded to a literal backslash. On Windows, backslash is treated as a path separator, so what appears to the routing or middleware layer as a single URL segment can be resolved by the filesystem as a nested path. If an application relies on prefix-mounted middleware or route structure to protect certain static files, an attacker may bypass that protection and retrieve files beneath the static root that were not intended to be directly accessible. The impact is confidentiality only: unauthorized file read. The vulnerability does not directly provide code execution, file modification, or service disruption.

Why it matters to the business

Organizations running affected Hono applications on Windows may unintentionally expose sensitive static files, including administrative assets, configuration-like files placed under a served directory, internal documents, source maps, backups, or other files assumed to be protected by route-level middleware. The CVSS score is moderate, EPSS is currently low, it is not listed in CISA KEV, and there is no known public exploit maturity in the provided data; however, the issue is remotely reachable without authentication and can lead to high-impact data disclosure if sensitive files are present under the static root. Because the bug is specific to Windows path handling, Linux and other non-Windows deployments are less likely to be affected by this exact behavior.

How an attack unfolds

An attacker first identifies a Hono application that serves static content and is hosted on Windows. They then probe URL paths using percent-encoded backslashes, for example by replacing a normal slash-delimited path with a single segment containing %5C. Middleware or route checks may interpret the URL as matching an allowed static path segment, while after decoding, the Windows filesystem resolver treats the backslash as a directory separator. If a protected file exists under the configured static root, the static file handler may resolve and return that file even though the application intended it to be accessible only through protected routes. The attacker iterates through likely filenames and directory names to retrieve sensitive static content. Successful exploitation is observable as HTTP requests containing encoded backslashes that return files which should not be anonymously accessible.

How to fix it

Upgrade Hono to version 4.12.25 or later. If exact package management is used, update the Hono dependency and rebuild/redeploy all affected applications and containers/images. As compensating controls, avoid serving sensitive files from any static root, enforce authorization at the final resolved resource level rather than only by URL prefix, reject or normalize requests containing encoded path separators such as %5C and %2F before static resolution, and test behavior specifically on Windows hosts. Where feasible, run static serving behind a hardened reverse proxy or web server that canonicalizes paths consistently and denies encoded separators. Confirm that production deployments do not include backup files, source maps, secrets, administrative documents, or internal-only content in directories served by Hono static middleware.

How to confirm the fix worked

Confirm the deployed Hono version is 4.12.25 or later in the application dependency lockfile and runtime build artifact. Review package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lockb, or equivalent dependency manifests to ensure no older Hono version is bundled transitively or in separate services. On Windows-hosted test instances, send benign requests containing encoded backslashes to static routes and verify they are rejected, normalized safely, or return the same authorization behavior as canonical paths. Test representative protected files under the static root and confirm unauthenticated requests using %5C cannot retrieve them. Validate at the edge as well as directly against the application, because reverse proxies may decode or normalize paths differently from the application runtime.

Typical attack path

  1. Discover or fingerprint a Hono-based web application serving static files.
  2. Determine or infer that the application is hosted on Windows, or simply test Windows-style path behavior remotely.
  3. Identify static URL prefixes and files that may be protected by route-level or prefix-mounted middleware.
  4. Send crafted HTTP requests containing encoded backslashes such as %5C within a path segment.
  5. Cause the application to decode %5C into a Windows path separator and resolve the request to a nested file under the static root.
  6. Retrieve files that were intended to be protected or not directly exposed.
  7. Repeat with guessed filenames, directories, source maps, backup names, or administrative static assets to expand data access.

How to detect it

Investigate web server, reverse proxy, CDN/WAF, and application access logs for requests containing encoded backslashes in URL paths, especially requests that returned HTTP 200, 206, or unusually large response sizes. Search case-insensitively for %5c, double-encoded forms such as %255c, and mixed separator traversal probes around static asset routes. Focus on Windows-hosted Hono services and static file endpoints. Compare suspicious requests with normal access patterns to determine whether files under protected static directories were returned without authentication. Review application logs for static file handler activity, route mismatches, authorization bypass symptoms, and requests where the raw URL path differs from the decoded filesystem path. If sensitive files were present under static roots, inspect historical logs for downloads of those filenames, source maps, backups, configuration-like files, administrative assets, or internal documents. No named threat actors or known active exploitation were provided, and the vulnerability is not in CISA KEV, but low-volume probing may still occur because the exploit pattern is simple to test remotely.

  • %5C
  • %5c
  • %255C
  • %255c
  • /%5C
  • /%5c
  • %5Cadmin
  • %5cadmin
  • admin%5C
  • admin%5c
  • secret%5C
  • secret%5c
  • %5Csecret
  • %5csecret
  • ..%5C
  • ..%5c
  • %2e%2e%5c
  • %2E%2E%5C
  • GET /%5C
  • GET /%5c
  • HTTP request path contains encoded backslash
  • HTTP request path contains %5C

What your security team should do

  • Prioritize upgrading all Windows-hosted Hono applications to Hono 4.12.25 or later.
  • Inventory Hono usage across repositories, containers, serverless functions, and Windows-based deployments; this issue is most relevant where static file serving is enabled.
  • Search web access logs for requests containing encoded backslashes, especially %5C or case variants, in paths to static routes.
  • Review static directories for sensitive files and remove anything that should not be publicly downloadable.
  • Add regression tests for encoded path separators and protected static files on Windows build/test runners.
  • If immediate upgrade is not possible, block encoded backslashes and encoded path separators at the reverse proxy, WAF, or application middleware layer.
  • Do not rely solely on route prefix checks for access control to static content; enforce authorization after path canonicalization.
  • Treat any confirmed unauthorized file access as a data exposure event and assess what files may have been retrievable.

The record

Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.25, 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. This vulnerability is fixed in 4.12.25.

Affected packages

Ecosystem Package Introduced Fixed
npm hono 0 4.12.25

Related vulnerabilities