ghsa-7xfp-9c55-5vqj
Vulnerability from github
Published
2018-11-09 17:44
Modified
2023-09-12 18:48
Summary
Remote Memory Exposure in request
Details

Affected versions of request will disclose local system memory to remote systems in certain circumstances. When a multipart request is made, and the type of body is number, then a buffer of that size will be allocated and sent to the remote server as the body.

Proof of Concept

```js var request = require('request'); var http = require('http');

var serveFunction = function (req, res){ req.on('data', function (data) { console.log(data) }); res.end(); }; var server = http.createServer(serveFunction); server.listen(8000);

request({ method: "POST", uri: 'http://localhost:8000', multipart: [{body:500}] },function(err,res,body){}); ```

Recommendation

Update to version 2.68.0 or later

Show details on source website


{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "request"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "2.49.0"
            },
            {
              "fixed": "2.68.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c 2.47.0"
      },
      "package": {
        "ecosystem": "npm",
        "name": "request"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "2.2.6"
            },
            {
              "fixed": "2.68.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2017-16026"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-201"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2020-06-16T21:23:42Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "Affected versions of `request` will disclose local system memory to remote systems in certain circumstances. When a multipart request is made, and the type of `body` is `number`, then a buffer of that size will be allocated and sent to the remote server as the body.\n\n## Proof of Concept\n\n```js\nvar request = require(\u0027request\u0027);\nvar http = require(\u0027http\u0027);\n\nvar serveFunction = function (req, res){\n\treq.on(\u0027data\u0027, function (data) {\n            console.log(data)\n        });\n\tres.end();\n};\nvar server = http.createServer(serveFunction);\nserver.listen(8000);\n\nrequest({\n\tmethod: \"POST\",\n\turi: \u0027http://localhost:8000\u0027,\n\tmultipart: [{body:500}]\n},function(err,res,body){});\n```\n\n\n## Recommendation\n\nUpdate to version 2.68.0 or later",
  "id": "GHSA-7xfp-9c55-5vqj",
  "modified": "2023-09-12T18:48:46Z",
  "published": "2018-11-09T17:44:01Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2017-16026"
    },
    {
      "type": "WEB",
      "url": "https://github.com/request/request/issues/1904"
    },
    {
      "type": "WEB",
      "url": "https://github.com/request/request/pull/2018"
    },
    {
      "type": "WEB",
      "url": "https://github.com/request/request/pull/2022"
    },
    {
      "type": "WEB",
      "url": "https://github.com/request/request/commit/29d81814bc16bc79cb112b4face8be6fc00061dd"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/request/request"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Remote Memory Exposure in request"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…