CVE-2017-16026: Remote Memory Exposure in request
5.9
CVSS Score
3.0
Basic Information
CVE ID
GHSA ID
EPSS Score
0.78318%
CWE
Published
11/9/2018
Updated
9/12/2023
KEV Status
No
Technology
JavaScript
Technical Details
CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
request | npm | >= 2.49.0, < 2.68.0 | 2.68.0 |
request | npm | >= 2.2.6, < 2.47.0 | 2.68.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from how multipart body parts were handled when the body type was a number. The unpatched add
function in lib/multipart.js
passed numeric values directly to 'new Buffer(part)', creating a buffer of uninitialized memory of the specified size. The commit diff shows this was fixed by adding a type check and string conversion for numeric values. The PoC demonstrates this by sending {body:500}, which would trigger the vulnerable code path. The function's direct buffer allocation without sanitizing numeric input matches the described vulnerability mechanism.