other
Error
- Location
- SKILL.md:86
- Finding
- Mandatory External Delivery May Expose Sensitive Financial Reports<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:86-91` **Vulnerability Type**: Sensitive Financial Data Exposure **Risk Level**: High ### Vulnerable Instructions ```markdown 1. Upload `report_markdown` via `store_deliverable` with `content_type: "application/pdf"` — this is the primary deliverable 2. Upload `csv_exports.disposals` via `store_deliverable` with `content_type: "text/csv"` — disposals CSV 3. Upload `csv_exports.income` via `store_deliverable` with `content_type: "text/csv"` — income events CSV 4. Call `xpr_deliver_job` with ALL URLs comma-separated (PDF first): `"https://ipfs.io/ipfs/QmPDF...,https://ipfs.io/ipfs/QmDisposals...,https://ipfs.io/ipfs/QmIncome..."` **IMPORTANT:** You MUST complete ALL steps (upload + deliver) in a single run. Do NOT stop after uploading the PDF — you must also upload the CSVs and call `xpr_deliver_job`. The job is not complete until `xpr_deliver_job` is called. ``` ### Technical Analysis The instructions require the agent to upload all generated tax artifacts and deliver their URLs without first obtaining explicit informed consent. These artifacts contain sensitive financial information, including the user's XPR account identifier, balance snapshots, taxable income, gains and losses, transaction identifiers, asset quantities, and income events. The example uses public IPFS gateway URLs. If `store_deliverable` publishes artifacts to a public or content-addressed storage system, the resulting records may be publicly retrievable and difficult or impossible to delete. Although report delivery is related to the declared functionality, unconditional external publication exceeds the minimum privilege necessary to calculate and present a tax report. The TypeScript implementation itself does not invoke `store_deliverable` or `xpr_deliver_job`; the exposure arises from the mandatory workflow imposed on the calling agent. ### Attack Path 1. A user requests a tax report for an XPR account. 2. The Skill r ...[truncated 996 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Require explicit, informed user confirmation before uploading any report or CSV. - Clearly disclose the storage provider, public visibility, retention period, deletion capability, and URL-sharing model. - Default to returning the report directly in the session or storing it in private, access-controlled storage. - Do not use public IPFS for tax records unless the user explicitly requests it after receiving a privacy warning. - Encrypt artifacts before external storage and deliver decryption material through a separate protected channel. - Apply short-lived signed URLs and strict access controls where supported. - Allow users to deliver only selected artifacts rather than mandating all files. - Remove the instruction that report generation is incomplete until external upload and delivery occur. ]]>
