github.com / opencode-ai
opencode-ai/ opencode
Go·162 files·commit 73ee493·scanned 5d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 15 — 13,806+ stars — findings likely false positives
verdict accurate?
13,806 stars
Research / educational context
threat-state: lowlive
FINDINGS ░▒▓
criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.internal/fileutil/fileutil.go
}
cmd := exec.Command(rgPath, rgArgs...)
cmd.Dir = "."
return cmd+8criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.internal/lsp/client.go
func NewClient(ctx context.Context, command string, args ...string) (*Client, error) {
cmd := exec.CommandContext(ctx, command, args...)
// Copy env
cmd.Env = os.Environ()+8criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.internal/tui/components/chat/editor.go
tmpfile.Close()
c := exec.Command(editor, tmpfile.Name()) //nolint:gosec
c.Stdin = os.Stdin
c.Stdout = os.Stdout+8warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.internal/llm/agent/agent-tool.go+4
Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
142 files scanned @ 73ee493 | 10/22/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access0
obfuscation4
supply chain0
owasp / injection0
telemetry
files 142/162rules hit 5engine v7commit 73ee493
github
opencode-ai/opencode
A powerful AI coding agent. Built for the terminal.
13806
4614
590d
162 files
142 scanned(88%)
73ee493
architecture░▒▓
entry (1) flagged (4) pkg (112)
251 nodes · 620 edgesscroll to zoom · click node to jump to finding