Summary
find-my-way: DDoS with HTTP2
Advisory details
Impact
Remotely triggerable DoS in find-my-way when it is used with Node's HTTP/2 server.
The short version is that lookup() passes req.method into find(), and find() indexes this.trees[method]. Since this.trees is a normal object, HTTP/2 method values like constructor, toString, or __proto__ can resolve inherited object properties instead of returning undefined. The code then treats that value like a router node and crashes when it reaches currentNode.prefix.length.
Patches
Upgrade to v9.7.0.
Workarounds
Do not use find-my-way with HTTP/2 servers, or validate that the http method is valid beforehand.
References
- https://github.com/advisories/GHSA-c96f-x56v-gq3h
- https://github.com/delvedor/find-my-way/security/advisories/GHSA-c96f-x56v-gq3h
- https://github.com/delvedor/find-my-way/pull/434
- https://github.com/delvedor/find-my-way/commit/cfe3fd6168b5ac1594c0820fb83fce251a533fc1
- https://github.com/delvedor/find-my-way/releases/tag/v9.7.0
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-63376
toml-node: Prototype Pollution Leads to `Object.prototype` Corruption via `__proto__` Key-Path Desynchronization
- HIGHCVE-2026-82404
TOON: Prototype pollution when decoding untrusted TOON input
- HIGHCVE-2026-71553
ApostropheCMS: 2nd-order prototype pollution via PATCH leading to single-request persistent DoS
- MEDIUMGHSA-cp6q-959q-f8rh
Tiptap: mergeAttributes() turns an own __proto__ key into inherited executable DOM attributes
- MEDIUMCVE-2026-81887
Livewire DOM-based cross-site scripting during client-side state handling
- HIGHCVE-2026-73088
Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)