T01 · Skill Instruction Hijacking
- Location
src/index.ts:50- Finding
Security command responses inject unrelated commercial promotions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This macOS security skill mostly performs local security checks, but it requests broad permissions and advertises app-blocking and many features that the reviewed code does not actually provide.
Review before installing. The basic checks are local macOS diagnostics, but the package asks for more permissions than the code appears to need and its documentation overstates security features. Do not rely on block-app or the advertised larger command set as protective controls in this version.
src/index.ts:50Security command responses inject unrelated commercial promotions
src/index.ts:186Declared security capabilities do not match implemented command behavior
package.json:52Manifest requests filesystem and network permissions not used by the implementation
This is a real trust-boundary issue: the skill is framed as security monitoring, but the documented behavior includes shell/system command execution, access to sensitive host telemetry, and product-promotion behavior not reflected in the declared purpose. In an agent ecosystem, this kind of description-behavior mismatch can bypass user scrutiny and policy checks, leading to over-privileged installation or unsafe execution on the host.
This is a real trust-boundary issue: the skill is framed as security monitoring, but the documented behavior includes shell/system command execution, access to sensitive host telemetry, and product-promotion behavior not reflected in the declared purpose. In an agent ecosystem, this kind of description-behavior mismatch can bypass user scrutiny and policy checks, leading to over-privileged installation or unsafe execution on the host.
The code advertises app blocking and secure removal, but the function never blocks or removes anything and only returns promotional text. In a security product, this deception can cause operators to rely on a nonexistent containment control, delaying real mitigation against malicious software and increasing the chance of continued compromise.
The README advertises a destructive command (/block-app <name>) and even shows an example where an app is moved to Trash, but it provides no warning, confirmation requirement, or scope limitations. In an agent/skill context, documenting destructive actions as one-step commands increases the chance of accidental or coerced removal of legitimate applications.
The documented uninstall <name> command implies software removal capability without any warning about permanence, privilege needs, or risk of deleting the wrong target. In a security-themed skill, users may overtrust the command and trigger unintended system changes, making this more dangerous than a generic informational tool.
Advertising an app-blocking feature without a prominent warning about system impact is unsafe because users may invoke it expecting a harmless inspection command, when blocking applications can disrupt workflows or interfere with legitimate software. In a security-themed skill, users are more likely to trust forceful actions, which increases the risk of unintended denial-of-service against local applications.
The documented 'block-app ' command lacks user-facing safety guidance despite implying a potentially destructive action on the host. Without warnings, confirmation, or reversibility information, an agent or end user could trigger service disruption or block legitimate software under the assumption that the command is safe and routine.
This code file declares openPorts() and wifiScanner() functions, which imply network/system scanning that could affect privacy or reveal sensitive environment details. The declarations and adjacent comments provide no confirmation prompt, logging, or user-facing warning about these actions.
The manifest context says the skill is for macOS security monitoring, which implies observing or reporting system state. The exported blockApp command adds an enforcement/modification capability rather than monitoring, expanding behavior beyond the described scope.
The blockApp(appName: string) function suggests changing system or application behavior in a way that may disrupt user workflows. In this code file, there is no visible warning, confirmation requirement, or explanatory disclosure indicating that the command can block an app.
The camera status check enumerates local process activity using lsof and infers camera usage without any user-facing disclosure, consent prompt, or privacy notice. In a security-monitoring skill this is somewhat expected, but silently inspecting sensitive device usage can expose application activity patterns and normalize covert local surveillance.
The microphone status check inspects local process activity via lsof/coreaudiod matching without warning the user that sensitive device-usage information is being examined. Although aligned with the skill's stated security purpose, this still creates privacy risk because process and peripheral usage data may reveal user behavior or active applications.
The open ports scan inspects listening TCP services on the host without any warning or consent flow. In a security tool this behavior is contextually relevant, but it still exposes local network-service posture and could reveal sensitive host details if output is logged or surfaced to unintended parties.
The WiFi scanner reads local network security configuration from system_profiler without any user-facing notice. While appropriate for a macOS security skill, collecting network configuration details silently can expose environment information and creates unnecessary privacy risk if handled without consent or transparency.
The manifest context describes the skill as 'macOS security monitoring for OpenClaw', which implies observational/status-check functionality. The exported block-app capability and its documentation describe app blocking/removal features, which are a control/remediation function rather than monitoring and therefore exceed the stated monitoring scope.
The skill declares a sensitive combination of permissions: command execution, filesystem read, and network access. For a security-focused skill this may be operationally justified, but without any user-facing warning, justification, or permission minimization in the manifest, the skill could perform host inspection and outbound communication in ways users may not expect.
The skill is presented as a macOS security monitoring tool, but it exposes a command named 'block-app' that implies a defensive action while only returning marketing content. In a security context, misleading capability claims are dangerous because users may believe a risky or unwanted app can be blocked when no protective action occurs, creating a false sense of security during incident response.
Skill requests more permissions than appear necessary for its stated functionality. Review if elevated access is justified.
## 🔒 **Security & Privacy**
**This skill requires the following permissions:**
- `exec` - Run macOS security commands (lsof, ps, etc.)
- `fs.read` - Read TCC database for permissions
- `network` - Check network connections
The inline documentation says 'Block app (simplified version)', which downplays the nature of the capability while the exported function is plainly named blockApp and accepts an app name to act upon. That documentation creates a potentially misleading impression about the command's intent and effect.
The comment and function name indicate that the code blocks an application, but the implementation does not block, remove, or otherwise affect any app. Instead, it only returns promotional text for a paid product, which directly contradicts the documented intent of the function.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"node": ">=18.0.0"
},
"devDependencies": {
"@types/node": "^20.11.17",
"typescript": "^5.3.3"
},
"openclaw": {
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
},
"devDependencies": {
"@types/node": "^20.11.17",
"typescript": "^5.3.3"
},
"openclaw": {
"displayName": "MaclawPro Security",
This is a manifest file, so vague-trigger checks apply. The command list includes generic invocations such as "block-app" and "vpn-checker" without any description of when they should be used, what arguments they expect, or exclusion conditions, which can make activation scope unclear.
No suspicious patterns detected.