Packages / find-my-way / Security
find-my-way: DDoS with HTTP2
Affected releases · find-my-way
- 9.x9.0.0 – 9.6.0Fixed in 9.7.0
- 8.x and older0.0.1 – 8.2.2No fix, no longer updated
On 9.x, the newest line:
npm install find-my-way@9.7.0Every release on a timeline
Affected
9.0.0 – 9.6.0
8 releases
Fixed
9.7.0 – 9.10.0
4 releases, latest
Affected
8.0.0 – 8.2.2
5 releases
Affected
7.0.0 – 7.7.0
13 releases
Affected
6.0.0 – 6.4.0
5 releases
Affected
5.0.0 – 5.6.0
10 releases
Affected
4.0.0 – 4.5.1
10 releases
Affected
3.0.0 – 3.0.5
6 releases
Affected
2.0.0 – 2.2.5
11 releases
Affected
1.0.0 – 1.18.1
42 releases
Affected
0.0.1 – 0.2.4
7 releases
What happens
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.