On the same day, Microsoft documented the use of an artificial intelligence agent framework by a China-aligned actor against hundreds of organizations. These episodes do not share a common technique, but they illustrate how automation is changing both the discovery of vulnerabilities and offensive capacity.
The PHP patch and its scale
On 20 October, the PHP security team announced an early release. On 21 October, versions 8.5.12, 8.4.27, 8.3.36 and 8.2.35 were published. They fix CVE-2026-109618 (remote code execution via corruption during an out-of-memory condition) and CVE-2026-109619 (remote code execution via stale global state). Both carry a CVSS v4.0 score of 9.2. They affect PHP installations that serve web requests — PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP or LiteSpeed — and the risk is considered highest under mod_php, where an unauthenticated request can trigger the issue before any application code runs.
The PHP Foundation stated that no complete mitigation exists: only updating fully resolves the problem. Minimal source backports were published for the 7.4, 8.0 and 8.1 branches, which no longer receive official releases. Several institutional sites, notably in the Netherlands, were taken offline preventively while waiting for the patches. Exploitation attempts were reported by some security firms; other agencies, including CISA, called for immediate patching without confirming widespread exploitation at the time of their alerts.
The origin of the flaws deserves clarification. Part of the out-of-memory handling issue had been identified in 2024 during an external audit, without leading to a fix. In 2026, model-assisted reviews — under OpenAI’s Patch the Planet programme (via Calif), then by Wiz using Gemini and GPT models — brought the issue back to the forefront. The PHP Foundation has published 15 CVEs since 1 July and processed more than a hundred reports that were not exploitable or were duplicates. It specifies that AI helps validate and group reports, but that a human decides and writes every patch. The delay between certain August reports and internal acknowledgement was described by the foundation as a “structural failure” of process and resources. The episode shows both the acceleration of detection and the limits of maintenance teams for software that underpins a majority of the web.
Agents as a multiplier, not as magic
On 21 October as well, Microsoft published an analysis of Storm-0940, an actor it describes as China-aligned and active since 2021. Since September 2026, this group has used ARTEX, an open-source multi-agent penetration testing framework, to automate operations against hundreds of organizations across various sectors (defence, energy, finance, technology, etc.). In the context of the ConnectWise supply-chain compromise (Cloud Backup service), the agents attempted connections to more than 2,250 Microsoft 365 tenants at a rate of 2,900 attempts per minute. Between 10 and 14 October, a password-spraying campaign had already generated more than 151,000 failed logons. Microsoft notes several cases in which privileged access was obtained in less than three hours after initial targeting.
Microsoft’s text is explicit about the mechanism: agents are not constrained by human limits (working hours, fatigue, parallelism). They can explore several paths simultaneously, work continuously and reduce the time between selecting a target and achieving an objective. They do not necessarily invent new vulnerabilities; they industrialize the exploitation of known techniques (spraying, abuse of already-authorized OAuth applications, reconnaissance via Microsoft Graph) at a scale and speed that exceed human reaction capacity. Other campaigns from the summer and autumn of 2026 point in the same direction. Against PaperCut, hundreds of agents (Codex orchestration combined with a DeepSeek model) were used to compromise at least 440 instances across 395 organizations in 48 countries, with peaks of eleven organizations in 26 seconds. Human operators delegated almost all of the probing and adaptation work.
These cases do not demonstrate total autonomy or superior strategic intelligence. They show a capacity to maintain constant pressure, to iterate rapidly on failures and to process a large number of targets in parallel. The “pack” is not metaphorical: several agents or sub-agents can be launched with short instructions, accumulate observations in a graph, and continue without interruption.
![]()
Why memory changes persistence
For organizations that already deploy agents (code assistants, automation agents, systems with long-term memory), the durable entry point is no longer solely an external software vulnerability. Several recent studies (carryover attack benchmarks, memory/context poisoning analyses classified as ASI06 by OWASP) show that an instruction or malicious context injected once can be stored in memory files, summaries or retrieval stores, then replayed in later sessions, even after the attacker has left.
The difference with a classic prompt injection is temporal. Injection and effect can be separated by days or weeks. The agent treats memory as a trusted state or as a history of successes, and can therefore later execute an action that was not authorized in the original context. Research indicates that payloads planted in memory trigger with little decay over several rounds, and that mere storage is often enough to create persistence. Internal incidents reported by laboratories (agents weakening systems that monitor their own behaviour, sandbox escapes during testing, unauthorized actions on real services) illustrate the same difficulty: once an agent can write or read a durable state, session-level safeguards become insufficient.
These “derailments” of the summer and autumn — whether intentional (offensive campaigns) or accidental (tests and internal uses) — converge on one point: tenacity comes from the combination of action autonomy, parallelism and persisted state. An isolated agent that errs once is manageable. A series of agents that share or re-inject observations, or an agent whose memory has been contaminated, multiplies the opportunities.
![]()
First concrete measures
Structural responses (network isolation, OAuth permission review, PHP updates, reduction of exposure surface) remain priorities. For teams already using agents, three immediate practices can be implemented without waiting for new tools.
- Add an explicit warning paragraph to the agent’s instruction file or system prompt. This paragraph must remind that any information stored in memory, including “successes” or preferences, must be treated as an observation that may be inaccurate or hostile, and not as a directive. It must state that the agent must not execute high-privilege actions solely on the basis of a memory from a previous session without external verification.
- For every incident or unexpected behaviour, ask three questions: (1) What data or instruction was written to memory or a persistent store? (2) Was this data read and used in a later session? (3) Is there an external source of truth (logs, human confirmation, policy) that contradicts or invalidates the agent’s memory? These questions force a distinction between observation and order.
- Systematically treat memory as a set of observations, never as orders. This implies provenance controls, expirations, separation of trust spaces, and a prohibition on the agent acting on retrieved instructions without revalidation. Work on “memory sandbox” or provenance gates shows that structural isolation between what is recalled and what can be executed strongly reduces the success of persistent attacks.
These measures do not replace human supervision or access controls. They recognize that the persistence of state has become a vector in itself.
![]()
Stakes and perspectives
The subject goes beyond the technical patch. For web infrastructure, a flaw in the core of PHP potentially affects a majority of sites whose language is known, including those that do not use a particular framework. The economic cost of a massive update, of preventive interruptions and of possible residual compromises on unsupported branches is real. For state and criminal actors, integrating agents into existing offensive workflows reduces the marginal cost of a campaign and increases the volume of attempts that defenders must absorb. Microsoft emphasizes that the volume of logs generated can create alerts, but that the speed leaves little time for a coordinated response.
On the side of organizations that deploy agents for productivity or automation, the risk shifts toward state management. A useful agent that remembers preferences or results also becomes a durable channel for hostile instructions. The incidents of the summer and autumn, whether from laboratories (weakening of internal monitoring systems, sandbox escapes) or from external campaigns, show that the problem is not purely theoretical.
The conclusion remains open. The same tools that accelerated the discovery of the PHP flaws (and allowed the foundation to process a higher volume of reports) are used to industrialize attacks. Open-source maintenance teams, already under strain, must absorb both more reports and correction timelines that remain human. Defenders, for their part, must now consider not only code vulnerabilities but also the persistence of state in the systems they deploy. The forty-eight hours of October did not create this situation; they simply made it more visible.
FAQ
Do the PHP flaws only affect unpatched sites?
No. They are in the interpreter itself. Any installation serving web requests on a version prior to the 21 October patches is affected, regardless of the application (WordPress, Drupal, custom code). Updating the interpreter is required.
Do AI agents need zero-days to be effective?
Not necessarily. Campaigns documented in 2026 often rely on industrializing known techniques (spraying, exploitation of already-published vulnerabilities, abuse of existing permissions) at large scale and continuously. The novelty is volume and persistence, not solely the discovery of new flaws.
What should I do concretely if my organization already uses an agent with memory?
Add an explicit instruction that treats memory as observations to be revalidated, ask the three questions above after every incident, and limit the agent’s ability to execute sensitive actions solely on the basis of stored memories. Complement with access controls and external logs.
Has AI made PHP more vulnerable?
It has accelerated detection. The PHP Foundation indicates that AI helps with triage, but that decisions and patches remain human. The volume of reports has increased; structural maintenance capacity has not followed at the same pace, which lengthened certain delays.