CVE-2023-39523 json
ScanCode.io command injection in docker image fetch process
published 2023-08-07 3 y ago modified 2026-09-10 1 mo ago also GHSA-2ggp-cmvm-f62f , PYSEC-2026-1904 , EUVD-2023-2184
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.9%
- EPSS 2.9% chance of exploitation in 30 days, percentile 87%
- public exploits
- 0
- none known
Summary
ScanCode.io is a server to script and automate software composition analysis with ScanPipe pipelines. Prior to version 32.5.1, the software has a possible command injection vulnerability in the docker fetch process as it allows to append malicious commands in the `docker_reference` parameter.
In the function `scanpipe/pipes/fetch.py:fetch_docker_image` the parameter `docker_reference` is user controllable. The `docker_reference` variable is then passed to the vulnerable function `get_docker_image_platform`. However, the `get_docker_image_plaform` function constructs a shell command with the passed `docker_reference`. The `pipes.run_command` then executes the shell command without any prior sanitization, making the function vulnerable to command injections. A malicious user who is able to create or add inputs to a project can inject commands. Although the command injections are blind and the user will not receive direct feedback without logs, it is still possible to cause damage to the server/container. The vulnerability appears for example if a malicious user adds a semicolon after the input of `docker://;`, it would allow appending malicious commands.
Version 32.5.1 contains a patch for this issue. The `docker_reference` input should be sanitized to avoid command injections and, as a workaround, one may avoid creating commands with user controlled input directly.
Patch / fix
- pypi scancodeio 32.5.1
- nexB scancode.io 32.5.1
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
2.92% chance of exploitation in the next 30 days, higher than 87% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/nexB/scancode.io/security/advisories/GHSA-2ggp-cmvm-f62f referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H |
| NVD | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| OSV | 3.1 | 6.8 | CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | scancodeio | <32.5.1 |
32.5.1 |
Affected products
- nexB scancode.io
Classification
- Weakness
-
- CWE-77 Improper Neutralization of Special Elements used in a Command
References
-
github.com
/nexB/scancode.io/commit/07ec0de1964b14bf085a1c9a27ece2b61ab6105c
web, patch
-
github.com
/nexB/scancode.io/security/advisories/GHSA-2ggp-cmvm-f62f
web, exploit, patch, vendor-advisory
-
github.com
/nexB/scancode.io/blob/main/scanpipe/pipes/fetch.py#L185
web, product
-
github.com
/nexB/scancode.io/releases/tag/v32.5.1
web, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2023-39523
advisory
-
github.com
/nexB/scancode.io
package
-
pypi.org
/project/scancodeio
package
-
github.com
/advisories/GHSA-2ggp-cmvm-f62f
advisory
Sources
- CVE List CVE-2023-39523
- GitHub Advisory GHSA-2ggp-cmvm-f62f
- NVD CVE-2023-39523
- OSV PYSEC-2026-1904
Fencer Vulns 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.