Convequity on X
A company gets an API key from a model provider (OpenAI, Anthropic, Google) and links it in OpenCode Console. OpenCode, the coding agent, uses that key to run models at the provider, billed to the company. It is a bearer credential: anyone with a copy can spend on the account. OpenCode disclosed unauthorized access to a legacy system being decommissioned. Keys for about 1.4% of Console users who linked external providers may have been exposed. OpenCode calls it a distillation attack. Users report charges for runs they never made. Provider terms generally make the key owner responsible, so the bill can land on the customer. A copied key works at the provider until revoked. OpenCode already runs on Cloudflare Workers, and Console is a gateway with budgets. Direct calls with a stolen key bypass Console and its budgets. Whether that legacy host ran on Cloudflare is undisclosed. In our view, customers need a control layer they own that keeps the raw provider key away from the agent and its vendor: a vault-held key, or Cloudflare ($NET) AI Gateway prepaid billing with no customer provider key, plus scoped keys, spend caps, per-user limits, alerts and full logs. F5 ($FFIV), Kong and LiteLLM offer related controls. We cannot say these would have stopped this breach. They can limit blast radius, spend and detection time: metrics we think a CFO will ask for before the next rollout.