T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:125- Finding
Unnecessary Requirement for Unrestricted Tool Profile
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:125andREADME.md:16
Vulnerability Type: Excessive permissions and violation of least privilege
Risk Level: MediumRelevant Code Snippets:
SKILL.md:125markdown - And ensure your OpenClaw **Tool Profile** is set to `full` ( Config -> Tools -> Tool Profile )README.md:16markdown 3. **Set Tool Profile**: You MUST set the tool profile to **full**. Without this, the skill cannot reach the Signalgrid API.Technical Analysis
The skill explicitly instructs users to enable OpenClaw's
fulltool profile. However, the reviewed implementation only requires execution of Node.js, access to theSIGNALGRID_CLIENT_KEYandSIGNALGRID_CHANNELenvironment variables, and outbound HTTPS connectivity toapi.signalgrid.co:443.No functionality in
signalgrid-activity.jsdemonstrates a legitimate need for unrestricted shell, filesystem, or unrelated tool access. Requiring the broad profile therefore violates the principle of least privilege and expands the security boundary beyond the skill's stated notification-delivery purpose.Although the current script does not directly exploit these additional permissions, enabling them increases the possible impact of prompt injection, another compromised skill, or a malicious future update.
Attack Path
- A user follows the installation documentation and enables the
fulltool profile. - The agent receives access to tools beyond those needed to submit a Signalgrid notification.
- Attacker-controlled instructions reach the agent through prompt injection, a compromised skill, or a malicious package update.
- Those instructions invoke the unnecessarily exposed tools.
- Depending on the tools available under the host's
fullprofile, the attacker may access local files, execute commands, inspect sensitive resources, or perform actions unrelated to Signalgrid notifications.
Impac
...[truncated 590 chars]
- A user follows the installation documentation and enables the
- Remediation
View remediation
Remediation Suggestions
- Remove the requirement to enable the unrestricted
fulltool profile from bothSKILL.mdandREADME.md. - Configure the narrowest available profile that permits only:
- Execution of the bundled Node.js entry point.
- Read access to
SIGNALGRID_CLIENT_KEYandSIGNALGRID_CHANNEL. - Outbound TLS connections to
api.signalgrid.coon port 443.
- Deny access to unrelated shell commands, filesystem locations, credentials, integrations, and administrative tools.
- If OpenClaw cannot express these restrictions, explicitly document the expanded privilege boundary and advise users to run the skill in an isolated, minimally privileged environment.
- Apply outbound network allowlisting so the process can contact only the documented Signalgrid endpoint.
- Run the OpenClaw process under a dedicated operating-system account without administrative privileges and with access only to files required by the skill.
- Remove the requirement to enable the unrestricted
