CVE-2023-50710
mediumPriorität · verfolgen · 17EPSS 0.006 · 50. PerzentilEUUSEPSS · bewertet 2026-10-27
Hono is a web framework written in TypeScript. Prior to version 3.11.7, clients may override named path parameter values from previous requests if the application is using TrieRouter. So, there is a risk that a privileged user may use unintended parameters when deleting REST API resources. TrieRouter is used either explicitly or when the application matches a pattern that is not supported by the default RegExpRouter. Version 3.11.7 includes the change to fix this issue. As a workaround, avoid using TrieRouter directly.
cvss
Technischer Schweregrad, 0–10. Eine Zeile je Quelle.
Basiswert 0–10 · höher = schwerwiegender · Vektor überfahren zum Auflösen
schwächen
Die CWE-Schwächeklassen, zu denen dies gehört.
betroffene Produkte (3)
Betroffene Produkte und Versionsbereiche.
Advisories (1)
Hersteller- und Ökosystem-Meldungen dazu.
- GHSA-f6gv-hh8j-q8vqNamed path parameters can be overridden in TrieRouter2023-12-15ghsa · osvUS
### Impact The clients may override named path parameter values from previous requests if the application is using TrieRouter. So, there is a risk that a privileged user may use unintended parameters when deleting REST API resources. TrieRouter is used either explicitly or when the application matches a pattern that is not supported by the default RegExpRouter. The code to reproduce it. The server side application: ```ts import { Hono } from 'hono' import { TrieRouter } from 'hono/router/trie-router' const wait = async (ms: number) => { return new Promise((resolve) => { setTimeout(resolve, ms) }) } const app = new Hono({ router: new TrieRouter() }) app.use('*', async (c, next) => { await wait(Math.random() * 200) return next() }) app.get('/modules/:id/versions/:version', async (c) => { const id = c.req.param('id') const version = c.req.param('version') console.log('path', c.req.path) console.log('version', version) return c.json({ id, version, }) }) export default app ``` The client code which makes requests to the server application: ```ts const examples = [ 'http://localhost:8787/modules/first/versions/first', 'http://localhost:8787/modules/second/versions/second', 'http://localhost:8787/modules/third/versions/third', ] const test = () => { for (const example of examples) { fetch(example) .then((response) => response.json()) .then((data) => { const splitted = example.split('/') const expected = splitted[splitted.length - 1] if (expected !== data.version) { console.error(`Error: exprected ${expected} but got ${data.version} - url was ${example}`) } }) } } test() ``` The results: ```txt Error: exprected second but got third - url was http://localhost:8787/modules/second/versions/second Error: exprected first but got third - url was http://localhost:8787/modules/first/versions/first ``` ### Patches "v3.11.7" includes the change to fix this issue. ### Workarounds Don't use TrieRouter directly. ```ts // DON'T USE TrieRouter import { TrieRouter } from 'hono/router/trie-router' const app = new Hono({ router: new TrieRouter() }) ``` ### References Router options on the Hono website: https://hono.dev/api/hono#router-option
auch bekannt als (3)
Weitere Namen und Kennungen dieser Entität.
quellen
Welche Quellen diesen Datensatz belegen und wann.
Referenzen (10)
Externe Belege — Patches, Meldungen, Analysen.
- https://cxsecurity.com/cveshow/CVE-2023-50710/cnnvd
- https://github.com/honojs/hono/commit/8e2b6b08518998783f66d31db4f21b1b1eecc4c8cnnvd
- https://github.com/honojs/hono/releases/tag/v3.11.7cnnvd
- https://github.com/honojs/hono/security/advisories/GHSA-f6gv-hh8j-q8vqcnnvd
- https://github.com/honojs/hono/commit/8e2b6b08518998783f66d31db4f21b1b1eecc4c8enisa_euvd
- https://github.com/honojs/hono/releases/tag/v3.11.7enisa_euvd
- https://github.com/honojs/hono/security/advisories/GHSA-f6gv-hh8j-q8vqenisa_euvd
- https://github.com/honojs/hono/commit/8e2b6b08518998783f66d31db4f21b1b1eecc4c8Patchnvd
Angreifer nutzen Schwachstellen wie diese gegen im Internet exponierte Dienste aus. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan