live · scanning repos
Scanrepo
github.com
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 1511,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,
+4
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.scripts/_mixin.py
        sys.stdout.flush()
    retval = os.system(cmd)
    if retval != 0 and exit_on_fail:
        print(f"fatal error: command '{cmd}' failed")
+4
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.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(
+4
criticalGo 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)
+8
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
infoBase64 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++)
+2
warningExtremely 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

C++
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