nodriver-browser
Warn
Audited by Gen Agent Trust Hub on Sep 29, 2026
Risk Level: MEDIUMDYNAMIC_EXECUTIONDATA_EXFILTRATIONCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [DYNAMIC_EXECUTION]: The script
scripts/eval.pyserves as an "escape hatch" that allows the agent to execute arbitrary JavaScript code within the active browser tab. This facilitates complex interactions but also provides a vector for executing potentially malicious scripts if the input is influenced by untrusted sources. - [DYNAMIC_EXECUTION]: The script
scripts/upload.pyuses the__import__function to dynamically load thenodrivermodule, andlib/runner.pydynamically manages the Chromium process life cycle. - [DATA_EXFILTRATION]: The
scripts/upload.pyutility allows the agent to select local files and upload them to the browser via CDP. If the agent is compromised by indirect prompt injection from a malicious website, this tool could be abused to exfiltrate sensitive local files to an attacker-controlled domain. - [COMMAND_EXECUTION]: The
lib/runner.pylibrary executes system commands includingpsandlsofto manage the browser daemon and verify process status. It also spawns the Chromium binary usingsubprocess.Popen. While these commands are invoked with list-based arguments and generally lack shell execution risks, they represent significant system interaction capabilities. - [INDIRECT_PROMPT_INJECTION]: The skill is designed to ingest and render arbitrary content from the web through
scripts/nav.pyandscripts/snapshot.py, which is then processed by the agent. This creates a surface for indirect prompt injection attacks where malicious web content could attempt to override the agent's instructions. - Ingestion points: Website text, titles, and interactive element metadata are ingested into the agent context via
snapshot.pyandstate.py. - Boundary markers: No specific delimiters or "ignore instructions" warnings are applied to the external web content before it is processed by the agent.
- Capability inventory: The skill provides high-impact tools including file uploading (
upload.py), JavaScript evaluation (eval.py), and simulated user interaction (click.py,type.py,press.py). - Sanitization: The
js()helper inlib/runner.pyusesJSON.stringifyto wrap data returned from the browser environment, providing some level of structural validation.
Audit Metadata