Security Resilience

CVE-2023-39523

Command Injection in Nexb Scancode.Io ≤ 32.5.1

Published
07 August 2023
Modified
21 November 2024
Patch / advisory
CVSS Score v3.1 6.8
Click a component to see what it means
Raw vectorCVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H
EPSS Score 0.029 87th percentile
Risk Priority 56 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2023-39523 is a medium-severity Command Injection (CWE-77) vulnerability in Nexb Scancode.Io. Its CVSS base score is 6.8 (Medium).

Operationally, ranked in the top 13% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

`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.

CWE(s)

Related Threats

CVEs Like This One

CVE-2023-40024Same product: Nexb Scancode.Io
CVE-2024-23626Shared CWE-77
CVE-2023-6572Shared CWE-77
CVE-2024-43613Shared CWE-77
CVE-2026-47827Shared CWE-77
CVE-2007-3010Shared CWE-77
CVE-2023-31701Shared CWE-77
CVE-2023-49716Shared CWE-77
CVE-2023-36805Shared CWE-77
CVE-2023-43206Shared CWE-77

Affected Assets

nexb
scancode.io
≤ 32.5.1

Mitigating Controls

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

blocks

A.8.25 mandates secure SDLC practices including secure coding guidelines, security requirements, checkpoints, testing (scans/penetration), and developer training that reduce command injection defects, but leaves a minority slice (e.g. incomplete implementation of those practices, outsourced development without full assurance, or post-SDLC changes) where the weakness can still arise and be exploitable.

blocks

Application security requirements explicitly call for controls against injection flaws including command injection.

blocks

A.8.27 mandates security-by-design principles (e.g. distrust external input, secure session control, data validation/sanitization, least privilege) and design reviews that can stop command injection from being introduced, but this is only a minority slice of CWE-77 because the weakness can still arise in code that bypasses those principles, in non-reviewed components, or in runtime injection vectors the architecture review does not reach.

prevents

Secure coding standards require proper escaping and parameterization of commands, directly eliminating CWE-77.

finds

Security testing in development catches command-injection vulnerabilities before release.

Hardening callouts derived

DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.

  • No fine-grained STIG row for CWE-77, a class-level weakness, and none of its children carries one either.

References