{"id":646489,"date":"2026-10-31T02:50:12","date_gmt":"2026-10-31T02:50:12","guid":{"rendered":"https:\/\/www.newsbeep.com\/nz\/646489\/"},"modified":"2026-10-31T02:50:12","modified_gmt":"2026-10-31T02:50:12","slug":"black-october-for-ai-developer-platforms","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/nz\/646489\/","title":{"rendered":"\u201cBlack October\u201d for AI Developer Platforms"},"content":{"rendered":"<p class=\"\">At least nine AI Developer Platforms have disclosed incidents over the course of the month:<\/p>\n<p class=\"\">Wiz customers can refer to our relevant Threat Intel Center advisories for more information on the <a href=\"https:\/\/app.wiz.io\/boards\/threat-center\/wiz-adv-2026-189\" target=\"_blank\" rel=\"nofollow noopener\">Railway Platform Breach,<\/a> <a href=\"https:\/\/app.wiz.io\/boards\/threat-center\/wiz-adv-2026-189\" rel=\"nofollow noopener\" target=\"_blank\">\u00a0<\/a><a href=\"https:\/\/app.wiz.io\/boards\/threat-center\/wiz-adv-2026-194\" target=\"_blank\" rel=\"nofollow noopener\">Lightning AI Security Incident<\/a> and the <a href=\"https:\/\/app.wiz.io\/boards\/threat-center\/wiz-adv-2026-199\" target=\"_blank\" rel=\"nofollow noopener\">overall campaign<\/a>.\u00a0<\/p>\n<p class=\"\"><a href=\"https:\/\/x.com\/lqiao\/status\/2108985661743325257?a=hRwgh8Url3MQ3gnyMDg&amp;s=20\" target=\"_blank\" rel=\"nofollow\">Fireworks<\/a>, <a href=\"https:\/\/x.com\/thdxr\/status\/2111790511409258796?a=kd5ip7cUye6U-c9bDCA&amp;s=20\" target=\"_blank\" rel=\"nofollow\">OpenCode<\/a>, and <a href=\"https:\/\/x.com\/zachlloydtweets\/status\/2114800787716972873\" target=\"_blank\" rel=\"nofollow\">Warp<\/a> have all reported indications of an \u201cagent swarm\u201d attack. Andromeda\u2019s incident report calls it part of an &#8220;industry-wide attack.&#8221; OpenCode and CommandCode have explicitly attributed their incidents to an attempt at \u201c<a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/opencode-hack-exposes-api-keys-amid-ai-distillation-attacks\/\" target=\"_blank\" rel=\"nofollow noopener\">distillation<\/a>.\u201d<\/p>\n<p class=\"\">Any other month, and this would be the top security story. However, with all the ongoing incidents, few reports are connecting the dots across these attacks (Cloud Security Alliance as a <a href=\"https:\/\/labs.cloudsecurityalliance.org\/research\/csa-research-note-inference-provider-platform-chain-campaign\/\" target=\"_blank\" rel=\"nofollow noopener\">notable exception<\/a>).<\/p>\n<p><a id=\"the-pattern-in-these-attacks-5\" class=\"relative -top-20\"\/>The Pattern in these Attacks<\/p>\n<p class=\"\">Currently, most of these security incidents are still being analyzed, and detailed technical information is not available. Zeabur has shared a full write-up, and the <a href=\"https:\/\/zeabur.com\/blogs\/zeabur-is-shutting-down\" target=\"_blank\" rel=\"nofollow noopener\">company will be shutting down<\/a> due to this incident. Railway has released a <a href=\"https:\/\/blog.railway.com\/p\/preliminary-report-october-security-incident\" target=\"_blank\" rel=\"nofollow noopener\">preliminary report and timeline<\/a>.\u00a0<\/p>\n<p class=\"\">However, there are some indicative details. Fireworks, Zeabur, and Lightning all attribute their incident root causes to credential access. Lightning was <a href=\"https:\/\/lightning.ai\/blog\/pytorch-lightning-supply-chain-attack\" target=\"_blank\" rel=\"nofollow noopener\">previously impacted<\/a> by a supply chain attack within <a target=\"_blank\" href=\"https:\/\/www.wiz.io\/blog\/mini-shai-hulud-supply-chain-sap-npm\" rel=\"nofollow noopener\">the Mini-Shai Hulud campaign<\/a>. Railway so far has shared they believe the initial access was via \u201cprivilege escalation in our build infrastructure,\u201d while Warp has suggested the root cause was a third-party vendor dependency, and OpenCode attributes it to a \u201clegacy system.\u201d<\/p>\n<p class=\"\">All public reports highlight targeted exploitation, explicitly hunting stored environment variables, with a focus on those granting AI access. While there is no single vulnerability or dependency linking these attacks, the overall picture is strongly aligned with recent reports on two fronts:<\/p>\n<p class=\"\"><a target=\"_blank\" href=\"https:\/\/www.wiz.io\/blog\/the-rise-of-agentic-attacks\" rel=\"nofollow noopener\">Agentic Attacks<\/a>, which can enable threat actors to compromise victims faster and more efficiently.<\/p>\n<p class=\"\">The rise of <a target=\"_blank\" href=\"https:\/\/www.wiz.io\/blog\/from-phishing-to-llmjacking\" rel=\"nofollow noopener\">LLMJacking<\/a>, and the associated infrastructure of LLM Brokers. These create a market that makes the theft easily monetizable, likely driving more actors to undertake operations to steal credentials. <a href=\"https:\/\/www.anthropic.com\/news\/detecting-and-preventing-distillation-attacks\" target=\"_blank\" rel=\"nofollow noopener\">Distillation<\/a>, notably alleged against Chinese AI labs, drives demand as well.<\/p>\n<p><a id=\"impact-and-follow-on-activity-11\" class=\"relative -top-20\"\/>Impact and Follow-on activity<\/p>\n<p class=\"\">Reports on the impact of these attacks have so far been limited to anecdotal reports on social media, which include:<\/p>\n<p class=\"\">However, Wiz has been able to observe downstream abuse of enterprise credentials, whose compromise we can attribute to one of these vendor breaches. We will discuss an exemplary pair of such cases.<\/p>\n<p class=\"\">In both cases, we see abuse of keys that previously were heavily used from the infrastructure of a compromised vendor.\u00a0<\/p>\n<p class=\"\">They shared an identical first unauthorized activity, which happened within 30 minutes of the reported credential access within the vendor breach. It was a single InvokeModel from a residential IP address, in a one-minute sweep that tested stolen keys across multiple organizations. The call asked for Claude Fable 5.1, failed, and fell back to Opus 5.5, which worked.<\/p>\n<p class=\"\">In the days after this initial validation, both keys saw only a trickle of traffic: 14\u2013120 calls a day from the same small Go client. The calls on the two keys ran in lockstep, about a minute apart. This indicates a single ongoing verification job checking that the keys remained valid.<\/p>\n<p><a id=\"case-a-18\" class=\"relative -top-20\"\/>Case A<\/p>\n<p class=\"\">Four days after the initial validation, a rotating proxy pool ran a catalog probe across dozens of addresses, sending one call per model across vendors: Amazon Nova, DeepSeek, gpt-oss, GLM, Kimi, Grok, GPT-6 Astra and older Claude models. Every call worked except Fable. A few hours later, a boto3 script on a residential address enumerated Bedrock and EC2 quotas. Twenty-two seconds after that, bulk traffic started from the same address. Within the next half hour, a second host mapped quotas and model availability across regions, making more than a thousand calls in under a minute.<\/p>\n<p class=\"\">The Flood<\/p>\n<p class=\"\">Over thirty hours, after which the key was remediated, the actor made approximately 800k Bedrock calls, and about 90% of them succeeded. The bulk ran first from the residential address and then, overnight, from a Level 3 hosting address. The key&#8217;s policy allowed global.* cross-region inference profiles, and the actor routed every call through them. Because global routing spread the load across regions, only about 6% of calls were throttled. Traffic leaned heavily on Opus: Opus models were three quarters of successful calls, led by Opus 5 (36%), Opus 5.5 (22%) and Opus 4.8 (10%).<\/p>\n<p><img decoding=\"async\" aria-hidden=\"true\" alt=\"\" src=\"data:image\/jpeg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wCEAAoHBwgHBhQICAgLDRESDhgQDQ0NDh0NEhEWFxYZGBYfFiEaHysjGikoHRUWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLDg0PEBANHDsdFhwvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL\/\/AABEIAAoAGAMBIgACEQEDEQH\/xAAYAAACAwAAAAAAAAAAAAAAAAAABQEDB\/\/EAB0QAAEEAwEBAAAAAAAAAAAAAAEAAxMxAgQRIRL\/xAAVAQEBAAAAAAAAAAAAAAAAAAACAP\/EABgRAAIDAAAAAAAAAAAAAAAAAAABAhET\/9oADAMBAAIRAxEAPwDXpGpLCh3YawPpCV9MtqnbJ7aagEbtbjWWfPpCR6pMloSzRWf\/2Q==\" style=\"transition:opacity 500ms;opacity:1;position:absolute;left:-5%;top:-5%;width:110%;height:auto;max-width:none;max-height:none\"\/>Breakdown of LLMJacking token usage<a id=\"case-b-23\" class=\"relative -top-20\"\/>Case B<\/p>\n<p class=\"\">Unlike Case A, this key was restricted. Seven days after the initial validation, it surfaced in an apparent reseller pool. Over four hours, thousands of failed calls came from rotating hosting addresses, each active for about 15 minutes. The calls failed because the key&#8217;s policy allowed Bedrock only through us.* cross-region inference profiles, and the pool requested global.*.<\/p>\n<p class=\"\">Early the next morning, a checker on a shared VPN exit identified the working us.* model IDs. Two hours later, a boto3 script on a Level 3 address retested global.* and us.* and enumerated Bedrock and EC2 quotas. It was the same script, down to the version string, that had probed Case A. Within minutes, the floodgates opened.<\/p>\n<p class=\"\">The Flood\u00a0<\/p>\n<p class=\"\">Over thirteen hours, after which the key was remediated, that single Level 3 address made approximately 1.7 million Bedrock calls, with over a million successful. Nearly all of the rest were throttled: without global routing, the traffic ran into the account&#8217;s regional quotas. Traffic was spread across a dozen Claude models and was less Opus-heavy than Case A. Opus 5.5, Sonnet 4.5 and Opus 5 made up three quarters of successful calls.<\/p>\n<p><img decoding=\"async\" aria-hidden=\"true\" alt=\"\" src=\"data:image\/jpeg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wCEAAoHBwgHBhYNCA8NDhYLDg0QDg0NFh0SFg4YFxoeGBYTFhUaHyslGh0oHRUWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLDg0OHA4RHDscFhwvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL\/\/AABEIAAoAGAMBIgACEQEDEQH\/xAAYAAACAwAAAAAAAAAAAAAAAAAEBQADB\/\/EAB4QAAEDBAMAAAAAAAAAAAAAAAABBDECAwUyERIh\/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwQB\/8QAGhEAAQUBAAAAAAAAAAAAAAAAAgABAxFhE\/\/aAAwDAQACEQMRAD8A1J096VeAyZWrkpfbAiFgQBSPpicW8mqyQV25IY8AWlY8X\/\/Z\" style=\"transition:opacity 500ms;opacity:1;position:absolute;left:-5%;top:-5%;width:110%;height:auto;max-width:none;max-height:none\"\/>Breakdown of LLMJacking token usage<a id=\"the-stolen-tokens-29\" class=\"relative -top-20\"\/>The Stolen Tokens<\/p>\n<p class=\"\">In both cases, the token usage profile resembles resold coding-agent traffic. A typical call sent only a handful of uncached input tokens, the signature of prompt caching, and got back a few hundred tokens of output. A long tail of calls carried tens of thousands of uncached input tokens, consistent with many different end users behind a reseller. At list price, these two cases alone likely ran up over $100k in usage.<\/p>\n<p><a id=\"what-we-see-from-these-attackers-31\" class=\"relative -top-20\"\/>What we see from these Attackers<\/p>\n<p class=\"\">Our research has been able to link the usage of the keys in the cases above overt reselling organizations. While we are not able to definitively establish the relationship between these reselling organizations and either the initial compromise or the \u201cflood\u201d token abuse documented above, the actors had access to the compromised keys and tested them from their infrastructure. The use of the keys by multiple actors suggests a robust market for this type of credential.<\/p>\n<p><a id=\"momo---resale-and-compromise-33\" class=\"relative -top-20\"\/>\u201cmomo\u201d &#8211; Resale (and compromise?)<\/p>\n<p class=\"\">Wiz Research identified an actor centered around 23.106.46.239 who appears to refer to themselves as \u201cmomo\u201d who had access to the keys used in Case A and Case B and is tied to an overt LLM resale site. Infrastructure linked to this IP address goes back to 2025 and has hosted multiple sites with titles related to LLM resale, including the site llm-routing.com which is currently active and advertises discounted access to frontier models, while accepting payment in USDT. This IP has also hosted an Artex landing page in mid-October and was publicly named by Zeabur as being part of their compromise. While we cannot definitively tie this operation to the \u201cflood\u201d of abuse documented above, the operator did have access to the stolen keys.<\/p>\n<p class=\"my-0!\">The site momo.skin resolved to 23.106.46.239 in early 2026 and another site tied via passive dns (direct.465415.xyz), used the title &#8220;Mo\u306e\u81ea\u5efa\u7f51\u76d8&#8221; (&#8220;Mo&#8217;s self-built cloud drive&#8221;).\u00a0<\/p>\n<p class=\"my-0!\">In March of 2026, this actor begins advertising LLM related services, hosting sites with titles such as &#8220;ChatGPT Team \u5e2d\u4f4d\u5151\u6362&#8221; (&#8220;ChatGPT Team seat redemption&#8221;), and &#8220;ChatGPT \u53f7\u6c60\u7ba1\u7406&#8221; (&#8220;ChatGPT account-pool management&#8221;).\u00a0<\/p>\n<p class=\"my-0!\">On October 8, 2026, a subdomain (artex.nhhh.de) resolving to 23.106.46.239 hosted a page with the title \u201cARTEX \u2014 \u81ea\u4e3b\u6e17\u900f\u6d4b\u8bd5\u63a7\u5236\u53f0&#8221; (&#8220;ARTEX \u2014 autonomous penetration testing console&#8221;). This is four days before Zeabur\u2019s timeline identifying that IP address targeting their infrastructure (Oct 12 &#8211; 14).\u00a0<\/p>\n<p class=\"my-0!\">In late October the 23.106.46.239 address conducts api key checks on the keys used in cases A and B and attempts a PutAccountDataRetention call using the Case B key.\u00a0<\/p>\n<p><img decoding=\"async\" aria-hidden=\"true\" alt=\"\" src=\"data:image\/jpeg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wCEAAoHBwgHBgoICAgFCgoFBQwFBQUFBREJCgUMFxMZGBYTFhUaHysjGh0oHRUWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLBQUFEAUFEC8cFhwvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL\/\/AABEIAA4AGAMBIgACEQEDEQH\/xAAVAAEBAAAAAAAAAAAAAAAAAAAAB\/\/EABQQAQAAAAAAAAAAAAAAAAAAAAD\/xAAVAQEBAAAAAAAAAAAAAAAAAAACAP\/EABQRAQAAAAAAAAAAAAAAAAAAAAD\/2gAMAwEAAhEDEQA\/AK6AIgCT\/9k=\" style=\"transition:opacity 500ms;opacity:1;position:absolute;left:-5%;top:-5%;width:110%;height:auto;max-width:none;max-height:none\"\/>Screenshot of llm-routing.com<a id=\"xingjiabi---a-second-resale-hub-37\" class=\"relative -top-20\"\/>\u201cXingjiabi\u201d &#8211; a second resale hub<\/p>\n<p class=\"\">Wiz also identified a second resale operation that was leveraging stolen keys. This one is publicly available at xingjiabiapi.org where they offer access to a wide range of frontier models for discount prices. Infrastructure tied to this site (38.246.114.118) was identified conducting permission checks on the keys used in both cases A and B. In both cases the checks were conducted after the high volume abuse of the key from unrelated ip addresses had already begun, suggesting that there is an active resale market for these keys.<\/p>\n<p class=\"my-0!\">A subdomain of the main site, s3.xingjiabiapi.org resolved to 38.246.114.118 beginning on September 10, 2026. This 38.246.114.118 IP address enumerated the key used in case A, listing the inference profiles and models per region, paging through every bedrock quota. It also conducted a manual test of the key being used in Case B.<\/p>\n<p><img decoding=\"async\" aria-hidden=\"true\" alt=\"\" src=\"data:image\/jpeg;base64,\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wCEAAoHBwgNDQcIDQgICQ4ODg0HDQ0OChEODgcYFxUZGBYfFhUaHysjJh0oHRUWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLDg0OFQ0NHDscIhwvLy8vLy87Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL\/\/AABEIAA4AGAMBIgACEQEDEQH\/xAAWAAEBAQAAAAAAAAAAAAAAAAAABwH\/xAAVEAEBAAAAAAAAAAAAAAAAAAAAEf\/EABYBAAMAAAAAAAAAAAAAAAAAAAABAv\/EABgRAAMBAQAAAAAAAAAAAAAAAAABEhEC\/9oADAMBAAIRAxEAPwCvQjQ6ZK4QAGsJR\/\/Z\" style=\"transition:opacity 500ms;opacity:1;position:absolute;left:-5%;top:-5%;width:110%;height:auto;max-width:none;max-height:none\"\/>Screenshot of xingjiabiapi.org<\/p>\n<p class=\"my-0!\">One interesting note about this actor is they seem to be attempting to guard against distillation. Their domain was snapshotted hosting a page titled \u201c\u84b8\u998f\u68c0\u6d4b\u76d1\u63a7\u201d (Distillation behaviour detection) that was designed to score users across three categories and attempt to sort them into \u201chigh risk\u201d, \u201cwatch\u201d and \u201cnormal\u201d. This may indicate that the attackers are attempting to avoid being associated with distillation, potentially due to that activity leading to accounts being suspended.<\/p>\n<p><a id=\"iocs-42\" class=\"relative -top-20\"\/>IOCs<\/p>\n<p class=\"\">These IPs were used to test stolen keys and are suspected to be linked to LLM token abuse and resale. We do not have evidence that links them directly to the \u201cBlack October\u201d attacks mentioned in this blog.<\/p>\n<p>IndicatorUseObserved Activity23.106.46.239Reported by Zeabur and later used for credential checking10\/26 &#8211; 10\/2938.246.114.118Checked permissions on several stolen keys10\/25 &#8211; 10\/29104.243.32.50Checked permissions on several stolen keys10\/19 &#8211; 10\/3031.57.201.201Identified using multiple stolen keys10\/18 &#8211; 10\/25<\/p>\n<p class=\"\">The following shared pools were also used for Bedrock abuse. However, either each compromised credential used a different IP address or the specific IPs rotated frequently:<\/p>\n<p>ProviderASNObserved ActivityPEG TECHAS54600, AS39882309\/10 \u2013 10\/28Alibaba (US)AS451029\/10 \u2013 10\/25ScloudAS14200210\/03 \u2013 10\/28SharktechAS4684409\/10 \u2013 10\/23Level 3AS1075309\/11 &#8211; 10\/29<\/p>\n","protected":false},"excerpt":{"rendered":"At least nine AI Developer Platforms have disclosed incidents over the course of the month: Wiz customers can&hellip;\n","protected":false},"author":2,"featured_media":646490,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[365,363,364,111,139,69,145],"class_list":["post-646489","post","type-post","status-publish","format-standard","has-post-thumbnail","category-artificial-intelligence","tag-ai","tag-artificial-intelligence","tag-artificialintelligence","tag-new-zealand","tag-newzealand","tag-nz","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts\/646489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/comments?post=646489"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts\/646489\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/media\/646490"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/media?parent=646489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/categories?post=646489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/tags?post=646489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}