T09 · Insecure Skill Coding Practices
Note
- Location
- SKILL.md:15
- Finding
- Unnecessary SSH Runtime Requirement Violates Least Privilege## Vulnerability Details **File Location**: `SKILL.md`, line 15 **Vulnerability Type**: Unnecessary privileged tooling declaration **Risk Level**: Low **Complete Code Snippet**: ```yaml metadata: safety: read-only author: network-security-skills-suite version: "1.0.0" openclaw: '{"emoji":"🚨","safetyTier":"read-only","requires":{"bins":["ssh"],"env":[]},"tags":["incident","nist","postmortem"],"mcpDependencies":[],"egressEndpoints":[]}' ``` ### Technical Analysis The Skill declares the `ssh` binary as a runtime prerequisite even though its documented function is limited to read-only incident-process coordination. The instructions explicitly defer network evidence collection and command execution to a separate Skill, and no reviewed file contains an SSH command or other operation requiring this binary. This mismatch violates least-privilege and capability-minimization principles. Declaring an unnecessary remote-access utility expands the tools available to the Skill runtime without a corresponding functional requirement. The declaration alone does not execute SSH, grant credentials, or create a remote session; therefore, this is a configuration-hardening issue rather than evidence of active compromise. ### Attack Path 1. The Skill is installed or loaded, and the runtime processes its declared prerequisites. 2. The runtime makes or verifies the availability of the `ssh` utility for this documentation-only Skill. 3. If the Skill instructions are later modified, combined with untrusted incident content, or otherwise influenced to invoke available tools, SSH could become an unnecessary remote-access execution channel. 4. Successful remote access would still require reachable infrastructure, suitable SSH options, and valid credentials or another independent authentication weakness. No direct exploitation path exists in the reviewed version because it contains no SSH invocation, credential access, destination host, ...[truncated 638 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the unnecessary SSH prerequisite by changing the requirement to an empty binary list: ```yaml openclaw: '{"emoji":"🚨","safetyTier":"read-only","requires":{"bins":[],"env":[]},"tags":["incident","nist","postmortem"],"mcpDependencies":[],"egressEndpoints":[]}' ``` 2. Keep the Skill documentation-only and continue delegating technical evidence collection to the separately scoped network incident-response Skill. 3. Add validation that rejects undeclared or unused binary requirements during packaging and review. 4. If SSH functionality is introduced later, document its exact purpose, constrain permitted destinations and commands, avoid implicit credential discovery, require host-key verification, and update the safety classification accordingly.
