CVE-2026-39408
High · 7.5CVSS
7.5
EPSS
0.4%
Published
Apr 8, 2026
CISA due date
—
Cloudanix analysis
A flaw in a web development tool could allow an attacker to write malicious files onto a server during the website build process, potentially leading to a complete takeover of that server.
- Exploitation
- Local Privilege
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Tampering
- Component
- Web Framework
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A path traversal vulnerability exists in the `toSSG()` function of the Hono web framework. When generating a static site, specially crafted values for dynamic route parameters (`ssgParams`) are not properly sanitized. This allows an attacker to use path traversal sequences (e.g., `../`) to cause files to be written to arbitrary locations on the filesystem of the machine performing the build, outside of the intended output directory. This can lead to overwriting system files, application code, or sensitive configuration, resulting in a high-impact integrity loss on the build environment.
Why it matters to the business
This vulnerability allows an attacker with control over the build process inputs to write arbitrary files on the build server. This could lead to the compromise of development and deployment pipelines, denial of service by overwriting critical files, or arbitrary code execution if a malicious script is placed in an executable path. A compromised build server can become a launch point for further attacks into the corporate network and can disrupt software delivery schedules.
How an attack unfolds
An attacker must first gain the ability to influence the inputs to the static site generation (SSG) process of a Hono application. This is often achieved by committing malicious code or content to a source code repository that is then processed by an automated CI/CD pipeline. The attacker crafts a malicious value for a dynamic route parameter, such as `../../../../root/.ssh/authorized_keys`, and includes it in the content to be built. When the vulnerable `toSSG()` function runs on the build server, it incorrectly processes this parameter, constructing a file path that escapes the intended output directory. The function then writes content to this malicious path, allowing the attacker to, for example, add their own SSH key to the server, plant a webshell, or overwrite critical system files to achieve persistence or code execution.
How to fix it
The vulnerability is patched in Hono version 4.12.12. Upgrade the `hono` package to version 4.12.12 or later in your project's dependencies and ensure your package lock file reflects the updated version. If an immediate upgrade is not feasible, as a temporary mitigation, strictly sanitize and validate all data passed to `ssgParams` to strip or reject any path traversal sequences before they are processed by the `toSSG()` function.
How to confirm the fix worked
To confirm remediation, inspect your project's dependency lock file (e.g., `package-lock.json`, `yarn.lock`) to ensure that the resolved version of the `hono` package is 4.12.12 or higher. To test for exposure, you can create a test case in a sandboxed environment that uses `toSSG()` with a malicious `ssgParams` value (e.g., `{'page': '../../test-file'}`). On a vulnerable system, this will create `test-file` two directories above the configured output directory. On a patched system, this operation should fail or be properly contained.
Typical attack path
- Attacker gains the ability to provide input to the Hono static site generation process, typically by committing to a source code repository linked to a CI/CD pipeline.
- Attacker crafts a payload containing path traversal sequences (`../`) and embeds it within a dynamic route parameter (`ssgParams`).
- The CI/CD pipeline triggers a build using the malicious source code.
- The vulnerable Hono `toSSG()` function processes the malicious parameter during static site generation.
- A file is written to an arbitrary location on the build server's filesystem, outside the designated output directory.
- The attacker leverages the arbitrary file write to achieve code execution, gain persistence, or cause a denial of service on the build server.
How to detect it
Focus detection efforts on build servers and CI/CD environments. Monitor for file creation or modification events originating from the build process that occur outside of the expected output directories. Use File Integrity Monitoring (FIM) to alert on unauthorized changes to critical system files (e.g., in `/etc`, `/root`, `/bin`). Review source code commits for suspicious values being assigned to `ssgParams` in Hono applications, particularly those containing `../` sequences. Analyze build logs for file write operations to unusual paths or error messages related to file paths.
- ssgParams.*['"]\.\./
- ssgParams.*['"][^'"]*\.\./
What your security team should do
- Identify all projects using the Hono framework and check for versions prior to 4.12.12.
- Prioritize upgrading vulnerable Hono instances to version 4.12.12 or later, focusing on applications with automated build pipelines.
- If patching is delayed, implement strict input validation for any data passed to Hono's SSG functions as a compensating control.
- Review build server configurations to ensure the build processes run with the lowest possible privileges to limit the impact of a potential compromise.
The record
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.12, a path traversal issue in toSSG() allows files to be written outside the configured output directory during static site generation. When using dynamic route parameters via ssgParams, specially crafted values can cause generated file paths to escape the intended output directory. This vulnerability is fixed in 4.12.12.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | hono | 4.0.0 | 4.12.12 |
Related vulnerabilities
- GHSA-xf4j-xp2r-rqqx Hono: Path traversal in toSSG() allows writing files outside the output directory Same vulnerability
- CVE-2026-54288 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54289 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54286 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54290 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- CVE-2026-54287 Hono is a Web application framework that provides support for any JavaScript runtime. Also affects hono
- GHSA-rv63-4mwf-qqc2 hono: Body Limit Middleware can be bypassed on AWS Lambda by understating `Content-Length` Also affects hono
- GHSA-wgpf-jwqj-8h8p hono: Lambda@Edge adapter keeps only the last value of a repeated request header… Also affects hono