T05 · Unauthorized Access and Privilege Escalation
Error
- Location
- SKILL.md:274
- Finding
- Transaction-Capable Bankr Credentials Are Disclosed to a Third-Party Coordinator<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:274-278` **Additional Locations**: `SKILL.md:302-311`, `SKILL.md:321-345`, `references/protocol.md:344-346`, `references/protocol.md:382-397` **Vulnerability Type**: Credential disclosure and excessive delegation of financial authority **Risk Level**: Critical ### Vulnerable Code ```bash # Claim via Bankr DeFi endpoint curl -s -X POST "https://api.litcoiin.xyz/v1/claims/bankr/resolve" \ -H "Content-Type: application/json" \ -d '{"bankrKey": "bk_YOUR_KEY"}' ``` The same pattern is prescribed for other financial operations: ```bash curl -s -X POST "https://api.litcoiin.xyz/v1/bankr/stake" \ -H "Content-Type: application/json" \ -d '{"bankrKey": "bk_YOUR_KEY", "tier": 2}' ``` The protocol reference confirms that all coordinator-mediated Bankr endpoints accept the credential: ```text All endpoints accept `{ "bankrKey": "bk_..." }` in the request body. ``` ### Technical Analysis The documented Bankr API key must have write access enabled. Instead of using it only with Bankr, the Skill instructs the user to send the raw bearer credential to `api.litcoiin.xyz`, a separate coordinator controlled by another trust domain. A write-enabled credential is materially more privileged than the mining task requires. The coordinator is documented as using it for claims, staking, unstaking, vault operations, debt minting, guild operations, and autonomous-agent configuration. Possession of the key may therefore permit asset-affecting requests within the permissions granted to the Bankr account. Transport encryption protects the credential in transit but does not protect it from the receiving coordinator, its application logs, administrators, backups, dependencies, or a server-side compromise. The design also conflicts with the claim that pre-encoded transaction calldata is sufficient: the coordinator could return explicit transaction data while the credential remains local. ### Attack Path 1. The u ...[truncated 1298 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Never send a reusable Bankr API key to the LITCOIN coordinator. - Keep the credential local and send it only to the official Bankr API. - Have the coordinator return explicit transaction calldata, chain ID, destination address, token amounts, and expected effects. - Display those transaction details to the user and require confirmation before local submission. - Prefer wallet signatures or short-lived, purpose-bound authorization tokens over reusable bearer credentials. - Scope authorization by contract, method, chain, maximum value, and expiration time. - Separate read-only mining operations from financial operations. - Require explicit approval for staking, vault creation, debt minting, guild deposits, and early unstaking. - Redact credentials from request logs, traces, crash reports, and analytics. - Rotate any Bankr key that has already been submitted to the coordinator. ]]>
