CVE-2026-12590
body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
3.7
body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
CVE-2026-12590- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-42577
3.7
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
EUVD-2026-42577- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-v422-hmwv-36x6
3.7
body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement
Impact
When body-parser is configured with an invalid limit option value, such as an unparseable string or NaN, bytes.parse() returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service.
This issue affects applications that pass a programmatically computed or user-configurable value to the limit option without validating it first.
Patches
This issue is fixed in [email protected] and [email protected] via #698. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement. null and undefined continue to fall back to the default limit (100kb).
Workarounds
Validate limit before passing it to body-parser. For example, parse the value with bytes.parse() at startup and reject any configuration where it returns null or a non-finite number.
References
- Record
GHSA-v422-hmwv-36x6- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-770
- Updated
- 2026-11-02
NVD
3.7
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
CVE-2026-12590- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
3.7
body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
CVE-2026-12590- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-12590
5.9
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
DEBIAN-CVE-2026-12590- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 13 moreShow less
OSVGHSA-v422-hmwv-36x6
3.7
body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement
Impact
When body-parser is configured with an invalid limit option value, such as an unparseable string or NaN, bytes.parse() returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service.
This issue affects applications that pass a programmatically computed or user-configurable value to the limit option without validating it first.
Patches
This issue is fixed in [email protected] and [email protected] via #698. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement. null and undefined continue to fall back to the default limit (100kb).
Workarounds
Validate limit before passing it to body-parser. For example, parse the value with bytes.parse() at startup and reject any configuration where it returns null or a non-finite number.
References
- Record
GHSA-v422-hmwv-36x6- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-12590
3.7
Impact: In body-parser versions prior to 1.20.6 (1.x line) and 2.3.0 (2.x line), when the parser is configured with an invalid limit option value such as an unparseable string or NaN, bytes.parse returns null and the request body size check is silently skipped. Applications that rely on limit as their primary safeguard against oversized request bodies will accept arbitrarily large payloads, leading to excessive memory and CPU usage and denial of service. Patches: This issue is fixed in body-parser 1.20.6 and 2.3.0. After the fix, invalid limit values throw a clear error at parser construction time instead of silently disabling enforcement, while null and undefined continue to fall back to the default limit of 100kb. Workarounds: Validate the limit value before passing it to body-parser. For example, parse the value at startup and reject any configuration where the result is null or a non-finite number.
- Record
UBUNTU-CVE-2026-12590- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1784596302 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.2-tuxcare.2.
- Record
CLSA-2026-1784596302- Updated
- 2026-11-02
OSVCLSA-2026-1787151610 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.13.3-tuxcare.2.
- Record
CLSA-2026-1787151610- Updated
- 2026-11-02
OSVCLSA-2026-1787151617 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.8.4-tuxcare.3.
- Record
CLSA-2026-1787151617- Updated
- 2026-11-02
OSVCLSA-2026-1787151664 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.14.2-tuxcare.3.
- Record
CLSA-2026-1787151664- Updated
- 2026-11-02
OSVCLSA-2026-1787151794 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.19.0-tuxcare.2.
- Record
CLSA-2026-1787151794- Updated
- 2026-11-02
OSVCLSA-2026-1787256348 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.1-tuxcare.2.
- Record
CLSA-2026-1787256348- Updated
- 2026-11-02
OSVCLSA-2026-1787256578 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.0-tuxcare.2.
- Record
CLSA-2026-1787256578- Updated
- 2026-11-02
OSVCLSA-2026-1790520930 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.3-tuxcare.1.
- Record
CLSA-2026-1790520930- Updated
- 2026-11-02
OSVCLSA-2026-1790541942 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.5-tuxcare.1.
- Record
CLSA-2026-1790541942- Updated
- 2026-11-02
OSVCLSA-2026-1790544295 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.20.4-tuxcare.1.
- Record
CLSA-2026-1790544295- Updated
- 2026-11-02
OSVCLSA-2026-1792476566 No score
TuxCare security update for body-parser (1 CVE)
TuxCare rebuilt body-parser to address 1 CVE. Fixed in 1.18.2-tuxcare.1.
- Record
CLSA-2026-1792476566- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
body-parsernpm |
before 1.20.6 | 1.20.6 |
body-parsernpm |
2.0.0 up to 2.3.0 | 2.3.0 |
body-parserTuxCare:npm |
1.20.2-tuxcare.0 up to 1.20.2-tuxcare.2, plus listed versions 1.20.21.20.2-tuxcare.1 |
1.20.2-tuxcare.2 |
body-parserTuxCare:npm |
1.13.3-tuxcare.0 up to 1.13.3-tuxcare.2, plus listed versions 1.13.31.13.3-tuxcare.1 |
1.13.3-tuxcare.2 |
body-parserTuxCare:npm |
1.8.4-tuxcare.0 up to 1.8.4-tuxcare.3, plus listed versions 1.8.41.8.4-tuxcare.11.8.4-tuxcare.2 |
1.8.4-tuxcare.3 |
body-parserTuxCare:npm |
1.14.2-tuxcare.0 up to 1.14.2-tuxcare.3, plus listed versions 1.14.21.14.2-tuxcare.11.14.2-tuxcare.2 |
1.14.2-tuxcare.3 |
body-parserTuxCare:npm |
1.19.0-tuxcare.0 up to 1.19.0-tuxcare.2, plus listed versions 1.19.01.19.0-tuxcare.1 |
1.19.0-tuxcare.2 |
body-parserTuxCare:npm |
1.20.1-tuxcare.0 up to 1.20.1-tuxcare.2, plus listed versions 1.20.11.20.1-tuxcare.1 |
1.20.1-tuxcare.2 |
body-parserTuxCare:npm |
1.20.0-tuxcare.0 up to 1.20.0-tuxcare.2, plus listed versions 1.20.01.20.0-tuxcare.1 |
1.20.0-tuxcare.2 |
body-parserTuxCare:npm |
1.20.3-tuxcare.0 up to 1.20.3-tuxcare.1, plus listed versions 1.20.3 |
1.20.3-tuxcare.1 |
Show 14 moreShow less
| Package | Affected | Fixed |
|---|---|---|
body-parserTuxCare:npm |
1.20.5-tuxcare.0 up to 1.20.5-tuxcare.1, plus listed versions 1.20.5 |
1.20.5-tuxcare.1 |
body-parserTuxCare:npm |
1.20.4-tuxcare.0 up to 1.20.4-tuxcare.1, plus listed versions 1.20.4 |
1.20.4-tuxcare.1 |
body-parserTuxCare:npm |
1.18.2-tuxcare.0 up to 1.18.2-tuxcare.1, plus listed versions 1.18.2 |
1.18.2-tuxcare.1 |
node-body-parserDebian:12 |
All versions, plus listed versions 1.20.1+~1.19.2-11.20.2+~1.19.5-11.20.3+~1.19.5-11.20.3+~1.19.5-21.20.3+~1.19.5-3 Show 6 moreShow less2.2.0+~1.19.6-12.2.0+~1.19.6-22.2.0+~1.19.6-32.2.1+~1.19.6-12.2.2+~1.19.6-12.3.0+~1.19.6-1 |
None known |
node-body-parserDebian:13 |
All versions, plus listed versions 1.20.3+~1.19.5-32.2.0+~1.19.6-12.2.0+~1.19.6-22.2.0+~1.19.6-32.2.1+~1.19.6-12.2.2+~1.19.6-12.3.0+~1.19.6-1 |
None known |
node-body-parserDebian:14 |
before 2.3.0+~1.19.6-1, plus listed versions 1.20.3+~1.19.5-32.2.0+~1.19.6-12.2.0+~1.19.6-22.2.0+~1.19.6-32.2.1+~1.19.6-12.2.2+~1.19.6-1 |
2.3.0+~1.19.6-1 |
node-body-parserUbuntu:16.04:LTS |
All versions, plus listed versions 1.8.1-1 |
None known |
node-body-parserUbuntu:18.04:LTS |
All versions, plus listed versions 1.8.1-11.8.1-1ubuntu1 |
None known |
node-body-parserUbuntu:20.04:LTS |
All versions, plus listed versions 1.18.3-21.19.0-2 |
None known |
node-body-parserUbuntu:22.04:LTS |
All versions, plus listed versions 1.19.0-21.19.0-51.19.1+~1.19.2-11.19.2+~1.19.2-1 |
None known |
node-body-parserUbuntu:24.04:LTS |
All versions, plus listed versions 1.20.1+~1.19.2-11.20.2+~1.19.5-11.20.2+~1.19.5-1build2 |
None known |
node-body-parserUbuntu:25.10 |
All versions, plus listed versions 1.20.3+~1.19.5-3 |
None known |
node-body-parserUbuntu:26.10 |
All versions, plus listed versions 2.2.2+~1.19.6-12.3.0+~1.19.6-1 |
None known |
node-body-parserUbuntu:26.04:LTS |
All versions, plus listed versions 1.20.3+~1.19.5-32.2.0+~1.19.6-12.2.2+~1.19.6-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-12590 is a low vulnerability (CVSS 3.7) in Body-parser, published July 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.41%, the 35th percentile. Fixed in body-parser 1.20.6.
References
github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6
cna.openjsf.org/security-advisories.html
nvd.nist.gov/vuln/detail/CVE-2026-12590
github.com/expressjs/body-parser/pull/698
github.com/expressjs/body-parser/pull/741
github.com/expressjs/body-parser/commit/2322e111cc321413ec2b7b76d01be533d3de9d7d
Show 9 moreShow less
github.com/expressjs/body-parser/commit/3492672eee593d5c158f239b6e9115498a5dbeac
github.com/expressjs/body-parser/releases/tag/1.20.6
github.com/expressjs/body-parser/releases/tag/v2.3.0
github.com/advisories/GHSA-v422-hmwv-36x6
github.com/CVEProject/cvelistV5/tree/main/cves/2026/12xxx/CVE-2026-12590.json
security-tracker.debian.org/tracker/CVE-2026-12590
github.com/expressjs/body-parser
ubuntu.com/security/CVE-2026-12590
cve.org/CVERecord?id=CVE-2026-12590