T08 · Insecure Dependencies
- Location
README.md:15- Finding
Unpinned Executable Installer and Mutable Remote Source
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is not clearly malicious, but it handles full payment-card data and presents broad purchase examples without enough scoping or control.
Review carefully before installing. Only use this with explicit user approval for each card-key read, avoid putting real access keys in command-line arguments, do not use broad purchase prompts, and treat any decrypted PAN/CVC exposure as sensitive payment-card data requiring strict handling.
README.md:15Unpinned Executable Installer and Mutable Remote Source
SKILL.md:43Access Key Exposed Through Command-Line Arguments
get-card-info-example.mjs:10Legacy 1024-Bit RSA Key and RSA-OAEP with SHA-1
The documentation explicitly instructs the agent to use the user's Reah card to buy a subscription for itself, which is a direct self-benefiting financial action. This is highly dangerous because it normalizes agent self-dealing and could be used to induce unauthorized charges using sensitive payment access under the guise of an example.
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.
The README says every access-key read requires explicit manual user confirmation, while the skill metadata says session generation, secure fetch, and decryption are handled automatically. This contradiction can mislead operators into believing a human approval gate exists when the system may actually process sensitive keys autonomously, increasing the risk of unauthorized card access.
The README describes broader spending and 'full platform access' behaviors that exceed the stated purpose of retrieving masked card information. This kind of scope inflation is dangerous because users and downstream agents may invoke the skill for purchases or broader account actions they did not intend to authorize, creating a confused-deputy pathway around expected limits.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| Skill | Description |
| ----- | ----------- |
| [reah](skills/reah/SKILL.md) | Full Reah platform access — agent card. See the [skill reference](skills/reah/SKILL.md) for detailed API docs. |
---
The example prompt 'Help me order dinner for today' is broad everyday language that can act as an unintended trigger for a payment-capable or card-adjacent skill. In the context of a skill tied to card access, vague invocation phrasing raises the chance that normal conversation causes the agent to escalate into financial workflows without sufficiently explicit user intent.
The skill clearly instructs network access to https://agents.reah.com/graphql and references executable scripts using node/curl, but it does not declare any explicit tool scope such as permissions or allowed-tools. This creates a policy/control gap: an agent platform may permit broader tool or network use than intended, making handling of sensitive card-related data harder to constrain and audit.
The script and metadata describe retrieval of masked card information, but the GraphQL query requests encrypted PAN and CVC fields and the code later decrypts them. This mismatch is dangerous because it understates that the skill handles full cardholder data, increasing the chance an agent or operator will invoke it without applying PCI-grade controls, logging restrictions, and user consent expectations.
This code sends the user-supplied access key and generated session identifier to a remote GraphQL endpoint to retrieve encrypted card information. While the network call is central to the script's function, the file contains no user-facing print/log message, confirmation, or comment/docstring warning that sensitive payment-related identifiers are being transmitted off-host.
The code explicitly decrypts both encryptedPan and encryptedCvc, which goes beyond a simple masked-info fetch and exposes full payment card data in process memory. In an agent skill context, this is especially sensitive because downstream tools, prompts, traces, or debug hooks may inadvertently retain or disclose decrypted PAN/CVC values.