GitHub Advisoryadvisory · npm

GHSA-5rwj-j5m3-3chj Missing Release of Memory after Effective Lifetime in detect-character-encoding

HIGH Published 2021-09-01 Modified 2021-10-21 Official page ↗
Aliases
CVE-2021-39176
Ecosystem
npm
Packages
detect-character-encoding
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-401
Reviewed
2021-08-31

Affected packages

• npm detect-character-encoding: < 0.3.1 → fixed in 0.3.1

Description

Impact In detect-character-encoding v0.3.0 and earlier, allocated memory is not released. Patches The problem has been patched in detect-character-encoding v0.3.1. CVSS score CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/RL:O/RC:C Base Score: 7.5 (High) Temporal Score: 7.2 (High) Since detect-character-encoding is a library, the scoring is based on the “reasonable worst-case implementation scenario”, namely, using detect-character-encoding in a program accessible over the internet which becomes unavailable when running out of memory. Depending on your specific implementation, the vulnerability’s severity in your program may be different. Proof of concept ```js const express = require("express"); const detectCharacterEncoding = require("detect-character-encoding"); const app = express(); app.get("/", (req, res) => { detectCharacterEncoding(Buffer.from("foo")); res.end(); }); app.listen(3000); ``` `hey -n 1000000 http://localhost:3000` (`hey`) causes the Node.js process to consume more and more memory. References • https://github.com/sonicdoe/detect-character-encoding/commit/d44356927b92e3b13e178071bf6d7c671766f588 • https://github.com/sonicdoe/detect-character-encoding/pull/6

Related

Alias · CVE (1)

  • CVE-2021-39176 detect-character-encoding is a package for detecting character encoding using ICU. vulnerability

Weakness · CWE (1)

  • CWE-401 Missing Release of Memory after Effective Lifetime weakness

References