T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:4- Finding
Unnecessary Exposure of Payment Credentials and Network-Capable Tools
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type: Excessive credential and tool requirements
Risk Level: MediumVulnerable Code
yaml metadata: {"openclaw":{"homepage":"https://www.npci.org.in/what-we-do/upi/product-overview","emoji":"💸","requires":{"env":["UPI_PROVIDER_KEY_ID","UPI_PROVIDER_KEY_SECRET","UPI_WEBHOOK_SECRET","UPI_MERCHANT_ID"],"bins":["curl","jq"]}}}Technical Analysis
The Skill declares four payment-related environment variables and the network-capable
curlutility as runtime requirements. However,SKILL.mddescribes the Skill as providing implementation and operational guidance only, and no audited file contains executable logic that reads these variables, invokescurl, or performs provider API operations.Making provider credentials available to a documentation-only Skill violates least privilege. It unnecessarily expands the set of secrets exposed to the Agent's runtime context. The simultaneous availability of credentials and a network client increases the potential consequences of a separate prompt-injection, compromised tool, or malicious co-resident Skill.
The audited project does not directly read or transmit these credentials. Therefore, the static pre-scan warning about confirmed network exfiltration is not substantiated by the project contents. The vulnerability is the unnecessary exposure of sensitive capabilities rather than implemented exfiltration.
Attack Path
- An operator loads the Skill with the declared payment credentials present in its environment.
- The credentials become available to the Agent or shared Skill execution context despite not being needed for the documented guidance.
- A separately compromised instruction, tool, dependency, or co-resident Skill obtains access to the environment.
- The malicious component reads the provider key, provider secret, merchant ID, or webhook secret.
- It can use the availa ...[truncated 879 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the
envandbinsrequirements from the Skill metadata because the current package is documentation-only. - Ask users only to confirm that credentials exist in their own secret manager; do not expose credential values to the Agent.
- If executable provider integration is added later, isolate it in a narrowly scoped component rather than granting credentials to the general Skill context.
- Use sandbox-only credentials during development and require an explicit production authorization step.
- Restrict provider credentials to the minimum API operations, merchant account, environment, and network destinations required.
- Apply outbound endpoint allowlisting so credentials cannot be sent to arbitrary hosts.
- Rotate credentials after suspected Agent-context exposure and monitor provider audit logs for unauthorized access.
- Avoid declaring general-purpose network tools unless the Skill contains a reviewed operation that specifically requires them.
- Remove the
