GitHub Advisoryadvisory · npm
GHSA-5rwj-j5m3-3chj Missing Release of Memory after Effective Lifetime in detect-character-encoding
HIGH
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
- https://github.com/sonicdoe/detect-character-encoding/security/advisories/GHSA-5rwj-j5m3-3chj web
- https://nvd.nist.gov/vuln/detail/CVE-2021-39176 advisory
- https://github.com/sonicdoe/detect-character-encoding/pull/6 web
- https://github.com/sonicdoe/detect-character-encoding/commit/d44356927b92e3b13e178071bf6d7c671766f588 web
- https://github.com/sonicdoe/detect-character-encoding package
- https://github.com/sonicdoe/detect-character-encoding/releases/tag/v0.3.1 web