CVE-2022-31116
Published: 5 July 2022
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. Affected versions were found to improperly decode certain characters. JSON strings that contain escaped surrogate characters not part of a proper surrogate pair were decoded incorrectly. Besides corrupting strings, this allowed for potential key confusion and value overwriting in dictionaries. All users parsing JSON from untrusted sources are vulnerable. From version 5.4.0, UltraJSON decodes lone surrogates in the same way as the standard library's `json` module does, preserving them in the parsed output. Users are advised to upgrade. There are no known workarounds for this issue.
Notes
Author | Note |
---|---|
ccdm94 | the embedded ujson code in pandas, eventhough containing similar content as the upstream ujson code, seems to have diverged from the ujson upstream project (they have fully forked ujson), since pandas upstream is maintaining their own ujson bug fixes and changes without re-syncing with the ujson upstream project. There is no indication the ujson fork, as used in pandas, is vulnerable to the same issues as the upstream ujson code. according to https://github.com/ultrajson/ultrajson/releases/tag/5.4.0, the commits that fix this issue are e0e5db9a46 and bc7bdff051. However, release 5.4.0 does include a few other commits which seem to be related to the above. |
Priority
Status
Package | Release | Status |
---|---|---|
collada2gltf Launchpad, Ubuntu, Debian |
bionic |
Needs triage
|
focal |
Does not exist
|
|
impish |
Ignored
(end of life)
|
|
jammy |
Needs triage
|
|
kinetic |
Ignored
(end of life, was needs-triage)
|
|
lunar |
Ignored
(end of life, was needs-triage)
|
|
mantic |
Does not exist
|
|
noble |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Needs triage
|
|
xenial |
Needs triage
|
|
pandas Launchpad, Ubuntu, Debian |
bionic |
Needs triage
|
focal |
Needs triage
|
|
impish |
Ignored
(end of life)
|
|
jammy |
Needs triage
|
|
kinetic |
Ignored
(end of life, was needs-triage)
|
|
lunar |
Ignored
(end of life, was needs-triage)
|
|
mantic |
Ignored
(end of life, was needs-triage)
|
|
noble |
Needs triage
|
|
trusty |
Needs triage
|
|
upstream |
Needed
|
|
xenial |
Needs triage
|
|
ujson Launchpad, Ubuntu, Debian |
bionic |
Released
(1.35-2ubuntu0.1~esm1)
Available with Ubuntu Pro |
focal |
Released
(1.35-4ubuntu0.1+esm1)
Available with Ubuntu Pro |
|
impish |
Ignored
(end of life)
|
|
jammy |
Released
(5.1.0-1ubuntu0.1~esm1)
Available with Ubuntu Pro |
|
kinetic |
Not vulnerable
(5.4.0-1)
|
|
lunar |
Not vulnerable
(5.5.0-2)
|
|
mantic |
Not vulnerable
(5.5.0-2)
|
|
noble |
Not vulnerable
(5.5.0-2)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(5.4.0)
|
|
xenial |
Released
(1.33-1ubuntu0.1~esm2)
Available with Ubuntu Pro |
|
Patches: upstream: https://github.com/ultrajson/ultrajson/commit/e0e5db9a46decfea1174217382486e06bbab4743 upstream: https://github.com/ultrajson/ultrajson/commit/67ec07183342589d602e0fcf7bb1ff3e19272687 |
Severity score breakdown
Parameter | Value |
---|---|
Base score | 7.5 |
Attack vector | Network |
Attack complexity | Low |
Privileges required | None |
User interaction | None |
Scope | Unchanged |
Confidentiality | None |
Integrity impact | None |
Availability impact | High |
Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
References
- https://github.com/ultrajson/ultrajson/security/advisories/GHSA-wpqr-jcpx-745r
- https://github.com/ultrajson/ultrajson/commit/67ec07183342589d602e0fcf7bb1ff3e19272687 (5.4.0)
- https://github.com/ultrajson/ultrajson/commit/67ec07183342589d602e0fcf7bb1ff3e19272687
- https://ubuntu.com/security/notices/USN-6629-1
- https://ubuntu.com/security/notices/USN-6629-3
- https://www.cve.org/CVERecord?id=CVE-2022-31116
- NVD
- Launchpad
- Debian