{"id":"CVE-2025-67731","aliases":["EUVD-2025-202768","GHSA-qgc4-8p88-4w7m"],"status":"published","title":"Servify Express does not enforce rate limiting when parsing JSON","description":"Servify Express is a Node.js package to start an Express server and log the port it's running on. Prior to 1.2, the Express server used express.json() without a size limit, which could allow attackers to send extremely large request bodies. This can cause excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected. The issue is not a flaw in Express itself, but in configuration. This issue is fixed in version 1.2. To work around, consider adding a limit option to the JSON parser, rate limiting at the application or reverse-proxy level, rejecting unusually large requests before parsing, or using a reverse proxy (such as NGINX) to enforce maximum request body sizes.","severity":{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00403,"percentile":0.34848,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400","CWE-770"],"published":"2025-12-11T18:36:54Z","modified":"2026-10-28T02:30:36Z","fixes":[{"ecosystem":"npm","package":"servify-express","fixed_in":["1.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"servify-express","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.1"},{"fixed":"1.2"}]}]},{"source":"osv","ecosystem":"npm","package":"servify-express","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2"}]}]}],"products":[{"vendor":"aarondoran","product":"servify-express"},{"vendor":"servify-express.js","product":"servify_express"}],"references":[{"url":"https://github.com/Aarondoran/servify-express/security/advisories/GHSA-qgc4-8p88-4w7m","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web"]},{"url":"https://github.com/Aarondoran/servify-express/commit/8dff7f56504b356278d849734ef2050e5cd23b61","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/Aarondoran/servify-express/releases/tag/V1.2","tags":["x_refsource_MISC","Product","Release Notes","web"]},{"url":"https://github.com/Aarondoran/servify-express/commit/197d848e5450bf85b0dd19ef8c2aa4ba96192300","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-67731","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-qgc4-8p88-4w7m"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/67xxx/CVE-2025-67731.json","tags":["advisory"]},{"url":"https://github.com/Aarondoran/servify-express","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-67731","title":"Servify Express does not enforce rate limiting when parsing JSON","description":"Servify Express is a Node.js package to start an Express server and log the port it's running on. Prior to 1.2, the Express server used express.json() without a size limit, which could allow attackers to send extremely large request bodies. This can cause excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected. The issue is not a flaw in Express itself, but in configuration. This issue is fixed in version 1.2. To work around, consider adding a limit option to the JSON parser, rate limiting at the application or reverse-proxy level, rejecting unusually large requests before parsing, or using a reverse proxy (such as NGINX) to enforce maximum request body sizes.","status":"published","published":"2025-12-12T07:40:53.047Z","modified":"2025-12-12T20:44:17.68Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:32:52.21763Z"}],"euvd":[{"id":"EUVD-2025-202768","description":"Servify Express is a Node.js package to start an Express server and log the port it's running on. Prior to 1.2, the Express server used express.json() without a size limit, which could allow attackers to send extremely large request bodies. This can cause excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected. The issue is not a flaw in Express itself, but in configuration. This issue is fixed in version 1.2. To work around, consider adding a limit option to the JSON parser, rate limiting at the application or reverse-proxy level, rejecting unusually large requests before parsing, or using a reverse proxy (such as NGINX) to enforce maximum request body sizes.","status":"published","published":"2025-12-12T07:40:53Z","modified":"2025-12-12T20:44:17Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T19:49:05.447386Z"}],"ghsa":[{"id":"GHSA-qgc4-8p88-4w7m","title":"Servify-express rate limit issue","description":"### Impact\nThe Express server uses `express.json()` without a size limit, which can allow attackers to send extremely large request bodies. This may lead to excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected.\n\n### Patches\nThis issue is not a flaw in Express itself but in configuration. Users should set a request-size limit when enabling the JSON body parser. For example:\n`app.use(express.json({ limit: \"100kb\" }));`\n\n### Workarounds\nUsers can mitigate the issue without upgrading by:\n- Adding a `limit` option to the JSON parser\n- Implementing rate limiting at the application or reverse-proxy level\n- Rejecting unusually large requests before parsing\n- Using a reverse proxy (such as NGINX) to enforce maximum request body sizes","status":"published","published":"2025-12-11T18:36:54Z","modified":"2025-12-12T16:12:25Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T14:39:13.204325Z"}],"nvd":[{"id":"CVE-2025-67731","description":"Servify Express is a Node.js package to start an Express server and log the port it's running on. Prior to 1.2, the Express server used express.json() without a size limit, which could allow attackers to send extremely large request bodies. This can cause excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected. The issue is not a flaw in Express itself, but in configuration. This issue is fixed in version 1.2. To work around, consider adding a limit option to the JSON parser, rate limiting at the application or reverse-proxy level, rejecting unusually large requests before parsing, or using a reverse proxy (such as NGINX) to enforce maximum request body sizes.","status":"published","published":"2025-12-12T08:15:48.367Z","modified":"2026-10-07T20:10:01.97Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:11:49.861863Z"}],"osv":[{"id":"CVE-2025-67731","title":"Servify Express does not enforce rate limiting when parsing JSON","description":"Servify Express is a Node.js package to start an Express server and log the port it's running on. Prior to 1.2, the Express server used express.json() without a size limit, which could allow attackers to send extremely large request bodies. This can cause excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected. The issue is not a flaw in Express itself, but in configuration. This issue is fixed in version 1.2. To work around, consider adding a limit option to the JSON parser, rate limiting at the application or reverse-proxy level, rejecting unusually large requests before parsing, or using a reverse proxy (such as NGINX) to enforce maximum request body sizes.","status":"published","published":"2025-12-12T07:40:53.047Z","modified":"2026-10-28T02:30:36.614907126Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:44:52.53036Z"},{"id":"GHSA-qgc4-8p88-4w7m","title":"Servify-express rate limit issue","description":"### Impact\nThe Express server uses `express.json()` without a size limit, which can allow attackers to send extremely large request bodies. This may lead to excessive memory usage, degraded performance, or process crashes, resulting in a Denial of Service (DoS). Any application using the JSON parser without limits and exposed to untrusted clients is affected.\n\n### Patches\nThis issue is not a flaw in Express itself but in configuration. Users should set a request-size limit when enabling the JSON body parser. For example:\n`app.use(express.json({ limit: \"100kb\" }));`\n\n### Workarounds\nUsers can mitigate the issue without upgrading by:\n- Adding a `limit` option to the JSON parser\n- Implementing rate limiting at the application or reverse-proxy level\n- Rejecting unusually large requests before parsing\n- Using a reverse proxy (such as NGINX) to enforce maximum request body sizes","status":"published","published":"2025-12-11T18:36:54Z","modified":"2026-09-10T03:50:32.066751268Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T15:46:54.40888Z"}]}}
