Back to skill

Security audit

Babata Browser

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed browser automation skill, but it combines anti-detection browsing, arbitrary JavaScript execution, credential submission, unsandboxed Chromium fallback, and unpinned browser dependencies without enough scoping or user control.

Install only if you specifically need anti-detection browser automation and can run it in a restricted container or VM. Avoid entering real credentials through this skill, review any JavaScript before execution, do not use it to bypass site policies, and prefer pinned, audited dependency versions before deployment.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T08 · Insecure Dependencies

Warning
Location
pyproject.toml:10
Finding

Unpinned Browser Dependencies Create a Supply-Chain Execution Risk

Content
View full analysis
=1.40", "cloakbrowser>=0.3", ] ``` The associated installation instructions are: ```bash # CloakBrowser (recommended — anti-detection) pip install cloakbrowser cd skills/babata-browser && pip install -e . # Playwright fallback (already installed) pip install playwright && python -m playwright install chromium ``` ### Technical Analysis The project specifies only minimum dependency versions. It does not provide exact version pins, package hashes, a lock file, or another integrity-verification mechanism. Consequently, installing the Skill can resolve to any future compatible release available through the configured Python package index. This is particularly security-sensitive because both dependencies control browser processes, and their Python code is imported directly when the package is loaded: ```python from cloakbrowser import launch as _cloak_launch from cloakbrowser import get_default_stealth_args as _get_stealth_args from playwright.sync_api import sync_playwright ``` A compromised package release, package-index account, dependency mirror, or installation source could therefore introduce arbitrary code without any modification to the reviewed Skill repository. Package installation hooks and imported module initialization code execute with the privileges of the user installing or running the Skill. The audit did not identify evidence that the declared packages are themselves malicious. The vulnerability is the absence of controls that ensure the installed artifacts are the same versions and contents that were reviewed. ### Attack Path 1. An attacker compromises a dependency publisher account, distribution channel, or configured package mirror. 2. The attac ...[truncated 1181 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/babata_browser.py:52
Finding

Chromium Sandbox Is Explicitly Disabled for Untrusted Web Content

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The changelog states "Full English localization," which indicates the skill is standardized to a specific language. There is no accompanying note that users may choose another language or that the English-only behavior is required for a documented regional or compliance reason.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The package description is written entirely in Chinese and does not indicate that other languages are supported or that the tool is intentionally limited to a Chinese-speaking context. Under the policy, language constraints should be optional or clearly justified when they affect how users discover or understand the skill.

Content

No source excerpt is available for this finding.

Ssd 2

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly advertises anti-detection and bot-evasion capabilities for bypassing crawler checks and protections on target sites. In context, this makes the browser automation materially more dangerous because it is designed to reduce detection by defensive systems, increasing the likelihood of unauthorized scraping, automated form interaction, or policy evasion on protected services.

Content

No source excerpt is available for this finding.

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
85% confidence
Finding

Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Content

Scanner excerpt · SKILL.md (reported line 133)May include surrounding context.

md
return f"Clicked: {text or selector}"
    
    def fill(self, page, selector, value):
        """Fill input field"""
        el = page.locator(selector).first
        el.fill(value)
        return f"Filled {selector} with: {value[:50]}"

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
85% confidence
Finding

Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Content

Scanner excerpt · scripts/babata_browser.py (reported line 99)May include surrounding context.

python
return f"Clicked: {text or selector}"
    
    def fill(self, page, selector, value):
        """Fill input field"""
        el = page.locator(selector).first
        el.fill(value)
        return f"Filled {selector} with: {value[:50]}"

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill exposes a generic JavaScript execution primitive via page.evaluate(code), which allows arbitrary script execution in the browser context far beyond the stated purpose of simple browser automation. In an agent setting, this can be abused to exfiltrate page data, interact with hidden DOM elements, bypass intended safeguards, or perform actions on authenticated pages that are not transparently represented as normal browser operations.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The login helper automates credential entry and submission even though the manifest emphasizes browsing, extraction, screenshots, and interactive web use without clearly declaring credential-handling behavior. In a skill used by an autonomous agent, this increases the risk of phishing-style workflows, unintended credential use, and silent interaction with authentication flows on sensitive sites.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The code submits credentials programmatically with no user-facing warning, confirmation, or domain verification before clicking the submit button. This is dangerous because an agent could be induced to send secrets to an attacker-controlled or unintended login form, especially in workflows involving dynamic pages and redirects.

Content

No source excerpt is available for this finding.

Unverifiable Dependency: setuptools has 10 known advisory(ies) (CVE-2013-1633 (Setuptools vulnerable to Man-in-the-middle attacks); CVE-2025-47273 (setuptools has a path traversal vulnerability in PackageIndex.download that lead); CVE-2024-6345 (setuptools vulnerable to Command Injection via package URL) +7 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Unverifiable Dependency: cloakbrowser has 2 known advisory(ies) (CVE-2026-45727 (CloakBrowser: Unauthenticated path traversal via fingerprint parameter in cloaks); CVE-2026-45727 (CloakBrowser: Unauthenticated path traversal via fingerprint parameter in cloaks)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
89% confidence
Finding

The manifest depends on cloakbrowser>=0.3 without pinning to a known-safe version, while the dependency has known advisories including an unauthenticated path traversal issue. Because this skill is explicitly built around anti-detection browser automation, a vulnerable cloakbrowser release could expose the host environment or skill runtime to filesystem access or other compromise if the affected code path is reachable.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The screenshot function writes image files to disk by default without any disclosure in the API behavior or runtime prompt. While common in automation tools, this can unintentionally persist sensitive page contents, including personal data or authenticated session views, on local storage.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The argument help string says 'Task description in Chinese', which imposes a language constraint in natural-language guidance. There is no accompanying opt-in, alternative language support note, or justification for restricting users to Chinese.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.