T09 · Insecure Skill Coding Practices
- Location
scripts/audit.py:6- Finding
Work Verification Is Hard-Coded to Succeed
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a high-risk payroll/payment workflow whose current scripts can falsely approve work and imply settlement without actually verifying work or moving funds.
Review carefully before installing. This should not be used for payroll, bounty approval, invoice settlement, or accounting records unless the audit functions are replaced with real authenticated GitHub/Linear checks, settlement is either accurately described as a calculator or implemented with confirmed transactions, and every payment requires explicit human approval of recipient, amount, network, and fee.
scripts/audit.py:6Work Verification Is Hard-Coded to Succeed
scripts/audit.py:25Work-Platform Validation Can Be Bypassed with Substring and Length Checks
scripts/settle.py:10Settlement Script Misrepresents Payment Completion and Lacks Transaction Execution
The declared description promises two major functions: auditing GitHub/Linear work and settling USDC payments via x402 with a 1% protocol fee. The supplied code only implements a simple command-line audit router and placeholder verification functions that always return True. It prints a message claiming readiness for x402 settlement, but no settlement, blockchain/payment interaction, x402 protocol logic, or fee calculation/collection exists. Additionally, the audit behavior is only simulated rather than actually querying GitHub or Linear APIs. So while the high-level theme of auditing GitHub/Linear work is partially aligned, the actual code materially falls short of the declared purpose and omits the payment functionality entirely.
The declared description presents a broader skill that audits work in GitHub/Linear and settles payments through x402. The supplied code implements only a simple payout split calculator with a printed message. While the 1% fee logic aligns loosely with the payment description, the primary declared capabilities—shadow HR infrastructure, audit external work systems, and actually settle USDC via x402—are absent. This is a material description-to-behavior mismatch.
The audit functions claim to verify GitHub PRs and Linear tasks, but both paths currently return True without performing any authenticated API call or validation. In the context of a payroll/payment skill that triggers USDC settlement after a passed audit, this creates a fail-open approval path where arbitrary or incomplete work can be marked as verified and paid.
The skill instructs the agent to perform external auditing and payment settlement actions, but it declares no explicit tool scope or permissions boundaries. In a payment-handling workflow, missing scope declarations can let the runtime invoke broader network-capable tools than users expect, increasing the chance of unauthorized external calls or fund movement.
Top-level instructions such as 'Run Payroll' or 'Pay Contractor' are ambiguous and insufficiently constrained for a skill that can trigger payment flows. Attackers or accidental prompts could cause the agent to begin a sensitive audit-and-settlement workflow without strong authorization, especially since the skill also references external URLs and fund transfers.
The activation criteria are broad business phrases like 'pay the team' and 'settle invoices,' which could trigger a high-risk payroll/payment skill during ordinary conversation. In the context of a skill that can verify work and initiate USDC settlement with fees, ambiguous activation materially raises the risk of unintended financial operations or social-engineering-driven invocation.
No suspicious patterns detected.