live · scanning repos
Scanrepo
github.com
github.com / browser-use

browser-use/browser-use

Python·494 files·commit 9a2db2d·scanned 18d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 15110,465+ stars — findings likely false positives

verdict accurate?
110,465 stars
CLI tool detected
threat-state: lowlive

FINDINGS ░▒▓

criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.bin/setup.sh
echo "[+] Installing uv..."
curl -LsSf https://astral.sh/uv/install.sh | sh

#git checkout main git pull
+10
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.browser_use/mcp/cli_mcp.py
			ns: dict[str, Any] = {}
			exec(_NAMESPACE_IMPORTS, ns)
			self._namespace = ns
		return self._namespace
+7
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.browser_use/utils.py
		commit_hash = (
			subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=package_root, stderr=subprocess.DEVNULL).decode().strip()
		)
+4
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
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.browser_use/browser/chrome.py
	if system == 'Windows' and path.name.lower() == 'chrome.exe':
		return Path(os.path.expandvars(r'%LocalAppData%\Google\Chrome\User Data'))

	return None
+10
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.browser_use/browser/session.py
				'Expected locations:\n'
				'  macOS: ~/Library/Application Support/Google/Chrome\n'
				'  Linux: ~/.config/google-chrome or ~/.config/chromium\n'
				'  Windows: %LocalAppData%\\Google\\Chrome\\...
+10
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.browser_use/browser/watchdogs/local_browser_watchdog.py
				('chrome', r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'),
				('chrome', r'%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe'),
				('chrome', r'%PROGRAMFILES%\Google\Chrome\Ap...
+10
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.browser_use/actor/element.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.browser_use/agent/cloud_events.py+3
warningHigh-entropy string literalsFound 5 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.browser_use/agent/message_manager/service.py+3
warningLarge base64-encoded blobA 104-character base64 blob was found. May hide a remote payload or encoded executable code.browser_use/browser/views.py
iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAFElEQVR4nGP8...
+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.browser_use/utils.py+3
infoSuspicious file in repoVery large source file (677KB) — could contain obfuscated payloadtests/mind2web_data/processed.json+2
warningHardcoded secret/credentialAPI keys, passwords, or tokens hardcoded in source code. Should be in environment variables.browser_use/telemetry/service.py

POSTHOG_PROJECT_API_KEY = 'phc_F8JMNjW1i2KbGUTaW1unnDdLSPCoyc52SGRU0JecaUh'
POSTHOG_HOST = 'https://eu.i.posthog.com'
DEVICE_ID_PATH = str(CONFIG.BROWSER_USE_CONFIG_DIR / 'device_id')
+3

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.

384 files scanned @ 9a2db2d | 8/25/2026 | heuristic scan — always review manually

risk by category
code execution23
network & exfiltration0
file system access20
obfuscation15
supply chain2
owasp / injection3
telemetry
files 384/494rules hit 14engine v5commit 9a2db2d

github

browser-use/browser-use

🌐 Make websites accessible for AI agents. Automate tasks online with ease.

Python
110465
12159
681d
494 files
384 scanned(78%)
9a2db2d

architecture░▒▓

entry (0) flagged (43) pkg (350)
728 nodes · 2434 edgesscroll to zoom · click node to jump to finding