CVE-2019-9710 json
Webargs mishandles concurrent JSON parsing
published 7y ago modified 4mo ago also GHSA-8554-jxcw-454q , PYSEC-2019-139 , EUVD-2019-0159
- cvss
- 8.1
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.1%
- EPSS 1.1% chance of exploitation in 30 days, percentile 66%
- public exploits
- 0
- none known
Summary
An issue was discovered in webargs before 5.1.3, as used with marshmallow and other products. JSON parsing uses a short-lived cache to store the parsed JSON body. This cache is not thread-safe, meaning that incorrect JSON payloads could have been parsed for concurrent requests.
Patch / fix
- pypi webargs 5.1.3
- webargs_project webargs 5.1.3
- github.com/marshmallow-code/webargs@716bd8d commit
- github.com/marshmallow-code/webargs#373 pull request
Is CVE-2019-9710 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerExploit prediction
1.12% chance of exploitation in the next 30 days, higher than 66% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/marshmallow-code/webargs/issues/371 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 8.1 | CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 6.8 | AV:N/AC:M/Au:N/C:P/I:P/A:P |
| GitHub | 3.0 | 8.1 | CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | webargs | <5.1.3 |
5.1.3 |
Classification
- Weakness
-
- CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization
References
-
github.com
/marshmallow-code/webargs/pull/373
web
-
github.com
/marshmallow-code/webargs/commit/716bd8d1f24c84aaf99170efaa17d1d34206f6c0
web
-
github.com
/marshmallow-code/webargs/issues/371
web, exploit, issue-tracking, third-party-advisory, report
-
webargs.readthedocs.io
/en/latest/changelog.html
web, release-notes, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2019-9710
advisory
-
github.com
/marshmallow-code/webargs
package
-
github.com
/pypa/advisory-database/tree/main/vulns/webargs/PYSEC-2019-139.yaml
web
-
webargs.readthedocs.io
/en/latest/changelog.html#id24
web
-
github.com
/advisories/GHSA-8554-jxcw-454q
advisory
Sources
- CVE List CVE-2019-9710
- GitHub Advisory GHSA-8554-jxcw-454q
- NVD CVE-2019-9710
- OSV PYSEC-2019-139
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.