github.com / daijro
daijro/ camoufox
C++·1221 files·commit 1a67b4a·scanned 14d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 15 — 11,549+ stars — findings likely false positives
verdict accurate?
11,549 stars
10% file coverage
threat-state: lowlive
FINDINGS ░▒▓
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.build-tester/scripts/wsl.py
try:
result = subprocess.run(
["wsl", "bash", "-lc", "ip route show default"],
capture_output=True, text=True, timeout=5,+4warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.scripts/_mixin.py
sys.stdout.flush()
retval = os.system(cmd)
if retval != 0 and exit_on_fail:
print(f"fatal error: command '{cmd}' failed")+4warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.scripts/developer.py
can_apply = not bool(
os.system(f'patch -p1 --dry-run --force -i "{patch_file}" > /dev/null 2>&1')
)
can_reverse = not bool(+4criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.legacy/launcher/exec.go
// Print args
cmd := exec.Command(execName, args...)
setProcessGroupID(cmd)+8infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.additions/juggler/content/Runtime.js
if ('ta' in value) {
const binary = atob(value.ta.b);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++)+2warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.legacy/launcher/constants.go+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.pythonlib/camoufox/fonts.json+4
warningHigh-entropy string literalsFound 10 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.build-tester/scripts/certificate.py+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.build-tester/scripts/runner.py+3
warningHigh-entropy string literalsFound 9 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.build-tester/src/lib/checks/workers.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.additions/juggler/NetworkObserver.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.additions/juggler/TargetRegistry.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.additions/juggler/content/FrameTree.js+3
infoSuspicious file in repoVery large source file (630KB) — could contain obfuscated payloadpythonlib/camoufox/fingerprint-presets-v150.json+2
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.
120 files scanned @ 1a67b4a | 8/30/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration2
file system access0
obfuscation15
supply chain2
owasp / injection0
telemetry
files 120/1221rules hit 15engine v5commit 1a67b4a
github
daijro/camoufox
🦊 Anti-detect browser
11549
985
780d
1221 files
120 scanned(10%)
1a67b4a
architecture░▒▓
entry (0) flagged (23) pkg (115)
208 nodes · 332 edgesscroll to zoom · click node to jump to finding