Back to skill

Security audit

HumanTyping

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed browser-typing automation skill; it can type into an open browser session, but I found no hidden persistence, exfiltration, or destructive behavior.

Install only if you want a tool that can control an OpenClaw/Chromium browser and type into the currently available page. Before running it, open the intended page, use a specific selector, preview with --dry-run when uncertain, and avoid pointing it at sensitive or production forms unless you explicitly intend the typed text to go there.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The run command sends arbitrary user-supplied text directly into a live browser field, and the README documents this capability without an explicit warning about misuse or operator verification. In an automation context, this can facilitate unintended submission of sensitive data, destructive form actions, or stealthy interaction with production systems if users misunderstand the risk.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
85% confidence
Finding

The skill instructs use of external commands and a local CDP endpoint, but it does not declare any explicit tool scope such as allowed-tools or permissions. That mismatch can cause the agent runtime to grant broader-than-expected execution capability or leave operators unaware that the skill can interact with local environment resources and an active browser session.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The code connects to an already-running Chromium instance over CDP at a predictable localhost endpoint and then takes control of the first available page without validating ownership, origin, or intended target. If another local process exposes or can reach that CDP endpoint, this skill could drive an existing authenticated browser session, causing unintended actions, data entry, or interaction with sensitive pages.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code programmatically clicks a selector, brings a browser page to the foreground, and then replays keyboard events into the page. While the file has a brief technical header comment, it does not provide any user-facing warning, confirmation, or explanatory disclosure that it will take control of an existing browser session and send input to the active page.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file describes a dedicated 'French accent omissions' mode and later exposes it as a boolean french option, which bakes in locale-specific behavior. There is no accompanying natural-language indication that language behavior should be selected by the user or limited to a justified region-specific use case.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The help text and implementation introduce a --french mode and accent-omission behavior tied to a specific language/locale. The file does not present this as a user-selectable locale framework with alternatives or a documented region-specific justification, so it can be read as embedding special handling for one locale without broader opt-in design.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The dependency uses a caret range (^1.40.0), which allows automatic installation of newer 1.x releases rather than a single vetted version. That increases supply-chain risk because a compromised or breaking upstream release could be pulled into this browser-automation skill without explicit review; the automation/stealth context makes dependency trust somewhat more important, though this package.json alone does not show active exploitation.

Content

Scanner excerpt · package.json (reported line 28)May include surrounding context.

json
"node": ">=20"
  },
  "dependencies": {
    "playwright-core": "^1.40.0"
  },
  "files": [
    "engine.js",

Static analysis

No suspicious patterns detected.