T08 · Insecure Dependencies
- Location
skill.md:22- Finding
Unpinned and Inconsistent Payment SDK Dependencies
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This payment-skill guide is coherent overall, but it under-discloses important recurring-payment authority, URL privacy, and checkout-domain risks.
Review this carefully before installing or following it. Use it only after independently verifying the Tributary/Lando domains, SDK package names, and fixed gateway public key; require explicit customer opt-in before autoRenew; avoid putting personal data or secrets in tracking IDs, memos, line items, or URLs; and document cancellation and revocation paths for recurring payments.
skill.md:22Unpinned and Inconsistent Payment SDK Dependencies
skill.md:364Mandatory Third-Party Gateway Can Trigger Recurring Payments
skill.md:116Subscription and Customer-Linked Metadata Exposed in Encoded Checkout URLs
The skill documents conflicting checkout domains and base URL behavior, showing both lando.tributary.so/# and checkout.tributary.so/subscribe/{encoded_data} as the effective checkout destination. In a payments flow, domain confusion is security-relevant because integrators may redirect users to the wrong host, weaken origin validation, or normalize unsafe handling of payment URLs that could enable phishing or broken payment flows.
The skill explains that subscription parameters are embedded in Base64URL-encoded checkout URLs and on-chain memo/tracking fields, but does not warn that these values are merely encoded, not secret, and may be logged, shared, cached, or exposed in browser history and analytics. Because tracking IDs, line items, and memo-related business data can reveal customer identities or transaction context, this omission creates meaningful privacy and integrity risk.
The skill encourages enabling autoRenew for recurring plans but does not require a prominent disclosure that this authorizes ongoing recurring charges. In a payment/subscription context, missing consent language is dangerous because users or downstream agents may set up renewals without clear authorization, creating financial harm, disputes, and compliance risk.
The document says callers may provide a custom memo, but later states the on-chain memo is stored as a fixed tributary:payment:{trackingId} value. This inconsistency can cause developers to place sensitive or audit-relevant data in memo under false assumptions about what is actually recorded, undermining integrity, troubleshooting, and privacy expectations.
No suspicious patterns detected.