Calm down. · Both
No, an AI didn't break into 140 targets in 11 days
"China-backed threat group used agentic AI pentesting tool to compromise 140 sensitive targets in 11 days," says the CyberScoop headline. If you've already pictured a swarm of AI agents tearing through every network on Earth while the humans go get coffee, calm down. The attacks were real, but the 140 isn't in CrowdStrike's own report, and the tricks the agents used are ones you can fix this week.
What CrowdStrike actually says
The primary source is CrowdStrike's Oct 29 blog post on Vapor Panda, a China-linked group that CrowdStrike says has been active since 2021. Starting Oct 17, the group pointed an open-source AI pentesting tool called ARTEX at more than 200 organizations in at least 14 countries over an 11-day window, and CrowdStrike calls it the group's "first observed use of AI-driven intrusion tooling."
So far, so scary. But the number CrowdStrike puts in writing is smaller than the headline. It "confirmed post-exploitation activity at nine organizations," and it saw password spraying and credential scanning against at least 12 more. Nine is bad news for those nine, but it isn't 140.
The 140 comes from an interview. CrowdStrike told CyberScoop that about 70% of the targets "were confirmed compromised or had evidence indicating moderate confidence of a successful intrusion," and 70% of 200 is about 140. That figure mixes confirmed cases with moderate-confidence ones, and it isn't in the blog post.
The scariest-sounding line is about the U.S., and it says "targeted." CrowdStrike writes that "a separate engagement targeted 19 U.S.-based organizations in the pharmaceutical, semiconductor, defense, nuclear, and financial sectors." Targeted means the attackers went after them, and it doesn't say they got in.
Claimed vs. confirmed
| What the doom version says | What the sources say |
|---|---|
| An AI compromised 140 sensitive targets | CrowdStrike's post confirms post-exploitation at 9 organizations. "About 140" comes from an interview quote that counts moderate-confidence cases too |
| 19 U.S. pharma, defense and nuclear orgs were breached | The post says a separate engagement "targeted" them |
| AI invented a new kind of attack | Every entry point CrowdStrike lists is an old, known mistake. CrowdStrike's Adam Meyers told CyberScoop it's "just doing it at a speed and scale that we're unaccustomed to" |
| There's a scary new CVE to patch | CrowdStrike names no CVE, and neither does CyberScoop |
The old tricks, done fast
This is the part that should lower your blood pressure. Going by CrowdStrike's write-up, the agents didn't find anything magic, and they got in through stuff that's been on every security checklist for years:
- authentication keys from a 2022 mail-server export that had likely not been rotated since, which let the attackers forge an admin token
- VPN settings found in a user's sent mail, plus a VPN client key the attackers said came from a May 2024 email leak
- a login system that accepted SAML assertions without checking their signatures, chained with an XML external entity (XXE) flaw to reach the cloud metadata service and a role that could run commands on thousands of servers
- an orchestration service with no login at all, which handed over root in a production container setup
- plain old password spraying
None of that is new, and the only new part is the speed. Microsoft saw the same tool used by a different group, Storm-0940, where it found cases of under 3 hours from first targeting to privileged access. That's the real lesson here, because a stale key you were going to rotate "sometime this quarter" now gets found in an afternoon.
And it's still a real campaign, which CyberScoop reports "remains active," and that's why this is a 2 and not a 1. If you defend a foreign ministry, a telco or a pharma company, it's a lot higher than 2 for you. For most people reading this, it's a reminder to do the boring stuff.
There's also a funny bit. CrowdStrike says the attackers' own ARTEX controller "intermittently exposed adversary tooling, target files, and ARTEX agent transcripts." Even the attackers left their agent's files where other people could see them, and that brings me to the other half of this.
If you run ARTEX, or anything like it
ARTEX was open source (AGPL), and its author has since taken it closed source, but the published versions are still on the Go module proxy and forks are still around. I've covered ARTEX and Storm-0940 before in the Wiz agentic attacks brief, so I'll keep this to the setup problem.
This part is from reading the public code (not tested). The stock Docker setup publishes the web UI and API on port 8787 on all network interfaces, and only the 8788 proxy is bound to localhost. The README does say to expose only 443 and keep 8787 internal, but the default file doesn't do that for you. And the first-run setup sets the admin password through an API call that's only rejected once a password exists, so on a fresh instance anyone can reach, whoever shows up first sets the admin password. If that's not you, someone else now has a pentest agent with your AI key in it.
The same goes for any self-hosted agent that ships with a dashboard. If the first visitor gets to set the password, make sure the first visitor is you.
I think this one ties back to my piece on AI attacks, where I talked about how AI attacks are very loud and leave very obvious fingerprints, like all the testing notes.
What to do:
-
Rotate old keys, including the ones sitting in backups.
- Why: the Greek government case started with keys from a 2022 directory export that had likely not been rotated since. CrowdStrike's advice is to rotate signing keys, preauthentication keys and service credentials "after any suspected data exposure, including keys contained in historical backups and directory exports."
- How: list the keys and service passwords that have ever been in an export, a backup or an email, and rotate any that are older than that exposure. If a backup ever left your control, treat every secret inside it as public.
-
Make your SAML setup check signatures.
- Why: one pharma company's way in was a login system that took unsigned SAML assertions. CrowdStrike says to "enforce SAML signature validation."
- How: in each app that does SAML sign-in, check that it rejects unsigned or badly signed assertions. If you aren't sure, ask the vendor or check its SSO settings for a "require signed assertions" option and turn it on.
-
Require IMDSv2 on your cloud servers.
- Why: that same SAML bug was chained with an XXE flaw to reach the cloud metadata service, which handed over a powerful role. CrowdStrike's list says "require IMDSv2."
- How: my suggestion: on AWS, set the instance metadata option to require tokens (IMDSv2) on existing instances and make it the default for new ones. Other clouds have their own metadata protections, so check yours.
-
Limit which roles can run commands on your servers.
- Why: the role the attackers got could run commands on "thousands of instances." CrowdStrike says to restrict cloud roles' command-execution permissions "to the minimum required instances."
- How: find every cloud role that can run remote commands on servers, and scope each one down to the few servers it actually needs. If nothing uses it, remove the permission.
-
If you run ARTEX or a similar agent, keep its console off the open internet.
- Why: from reading the public code (not tested), the stock setup listens on 8787 on every interface and lets the first visitor set the admin password.
- How: change the port mapping so 8787 binds to 127.0.0.1, or reach it only over a VPN. Then finish the first-run setup right away, before anything else can reach it.
-
Give the agent its own AI key with a spending cap.
- Why: ARTEX keeps your model API keys in its environment or UI, so if someone else takes over the console, they're spending your money. CrowdStrike says the planning agents used on the order of 1.4 billion input tokens in a single intrusion, so agents can burn through a budget fast.
- How: create a separate API key just for that agent, in its own project or workspace with a hard monthly spending limit (OpenAI projects and Anthropic workspaces both offer one), so a takeover costs you a capped amount and a key rotation, not your whole account.
-
Don't ship source maps or public API specs to production, and make the API check auth on every write.
- Why: Unit 42 says the attackers mapped apps from public source maps, JavaScript bundles, runtime config and OpenAPI specs, and a development API's document store accepted writes with no login at all.
- How: turn off source map output in your production build (or keep the .map files off the public server), and remove /openapi.json, /docs and /redoc in production or put them behind a login. Then check that every write endpoint (PUT, POST, PATCH, DELETE) rejects requests without valid auth, in dev and test environments too. And if your app lets anyone sign up, check that a brand-new account can't approve, bulk-edit or change other users' records.
Update: Unit 42
Palo Alto Networks' Unit 42 posted its own notes on ARTEX activity on Oct 30, and they back up my point about AI attacks being loud. Some context first. Unit 42 says ARTEX was forked more than 12,000 times before it went closed source on Oct 8, and that ARTEX use alone doesn't identify a specific actor, so this isn't necessarily Vapor Panda. The activity Unit 42 saw ran from Sep 24 to Oct 27, and it says it's ongoing.
After mapping the apps, the attackers went after identity providers, with password spraying, login probes and password-reset tricks, but Unit 42 says no successful IdP account compromise was observed. So they fell back to the apps' exposed APIs, and the wins came from app mistakes, not clever AI. On one production web app, they could register their own accounts, then read about 50 MB of API data and push through bulk approvals and user record changes. On a development API, the document store accepted writes with no login at all.
The recon wasn't magic either. The agent mapped each app by downloading public JavaScript source maps and bundles, runtime config files and OpenAPI specs, and then it called the routes those files described.
And it was loud. Unit 42 saw bursts of about one request per second, separated by regular 25 to 31 second pauses, which it says fits waiting on the AI model between steps. When the API sent back 422 validation errors, the agent re-read the spec and fixed its requests until the writes went through. After every successful write, it immediately read the record back to check that it worked. Those are exactly the kind of fingerprints I meant, and Unit 42 says the pattern goes beyond conventional scanners and fits an AI planner reasoning over its results.
Want the next one?
One email, weekly-ish. The week's briefs, how worried to be, and what to do about it. No doom.
Subscribe on Beehiiv ↗Free. Opens Beehiiv in a new tab. Unsubscribe whenever, I won't be offended.Sources
- CyberScoop: China-backed threat group used agentic AI pentesting tool to compromise 140 sensitive targets in 11 days (Matt Kapko, Oct 30, 2026)
- CrowdStrike: VAPOR PANDA Uses AI-Driven ARTEX to Scale a Global Espionage Campaign (Oct 29, 2026)
- Microsoft Security blog: AI-driven, large-scale nation-state campaign using ARTEX enables supply chain compromise (Oct 21, 2026)
- The Hacker News: ARTEX AI Pentesting Tool Used in Data Theft Attacks on South Korean Financial Firms (Oct 2026)
- Go module proxy: ARTEX published versions (Autumn-27)
- Unit 42 (Palo Alto Networks): 2026-10-30 (Friday): ARTEX Agentic AI Framework Used to Abuse Exposed APIs and Probe Identity Providers
- DBS: Wiz agentic attacks brief