This post was originally published in Portuguese on my blog: Black October: a IA acelerou a caça às falhas, e a conta chegou.

October is officially Cybersecurity Awareness Month. In 2026 it earned a much less friendly nickname: Black October. In just a few days we saw a critical PHP flaw discovered with the help of AI, a certificate authority leaving the market because of private keys you could practically guess, and a popular AI library distributing malware through PyPI. If you work with software and didn't have to update anything in the last few weeks, you were either very lucky or didn't look closely.

What happened

The loudest episode was PHP2Shell. Researchers at Wiz, with support from OpenAI and Calif, found memory-safety flaws in the PHP core, tied to how the language handles fatal errors, mainly memory exhaustion. A failing request can leave corrupted internal state behind, which another request later reuses. The result is unauthenticated remote code execution, with severity scores up to 9.2. The most striking detail: the problem had been there for more than a decade and affected practically every version since PHP 5.4.

According to Wiz itself, frontier AI models took part in the discovery, in building the exploits and in validating the patches. The first flaw was found on August 19; within two days there was confirmed remote execution on Drupal and WordPress. PHP shipped the fixes (8.2.35, 8.3.36, 8.4.27 and 8.5.12) on October 21, and the NSA went as far as recommending updating immediately or taking systems offline until you could.

Almost at the same time came the eMudhra case, an Indian certificate authority. A researcher found that eight private keys for intermediate certificates had values smaller than 256. Yes: keys that should be gigantic random numbers could be recovered almost instantly. Chrome and Firefox blocked the intermediates within hours, Mozilla stopped trusting the affected root, and the company announced it would exit the global TLS certificate business. About 30,000 certificates had to be replaced.

To close out the week, LiteLLM, a library widely used to talk to multiple language model providers, had its release pipeline compromised. For a few hours on the 21st, version 1.107.0 on PyPI and images on Docker Hub carried a credential stealer.

Why this matters if you work in tech

None of these cases is new in shape. Old bugs in popular languages, CAs with poor processes and supply chain attacks have all happened before. What changed is the pace. In August, Microsoft's Patch Tuesday fixed 419 vulnerabilities, about five times the volume of a typical month before this wave; in October, the security press counted more than 1,400. Finding flaws got cheaper, and that holds for defenders and attackers alike.

In practice, a few things become obvious:

  • Updating is no longer a "when I get around to it" task. If the window between disclosure and exploit keeps shrinking, the patch process has to be fast and, ideally, automated.
  • Inventory is security. If you don't know which versions of PHP, Node or Python libraries you run in production, you lose days just figuring out whether you were affected.
  • Pinning versions and verifying package origin matters. The LiteLLM case shows that an uncritical automatic update can be the very entry point.
  • Automatic certificate renewal isn't the end of the story. Chrome warned that common ACME clients may not replace certificates outside the renewal window without ARI support or manual intervention.

My take

A lot of people are treating Black October as proof that AI is going to "break the internet". I see it differently. The PHP flaws had existed for more than ten years; AI didn't create them, it just found them. This is collective technical debt being collected all at once, and it's better for it to be collected by researchers doing coordinated disclosure than by someone working in silence.

The problem is that the capacity to fix doesn't scale at the same pace as the capacity to find. Open source projects maintained by a handful of people, companies with legacy systems nobody dares to touch, and teams that treat updates as a risk rather than as protection will feel it first. The eMudhra case, by the way, didn't even involve AI: it was a basic process failure, the kind that only shows up when someone finally decides to look.

For developers, the lesson is less glamorous than it seems: keep dependencies up to date, know what runs in production, have a reliable deploy pipeline and enough tests to update without fear. None of this is new. The difference is that now the bill arrives faster.

Sources: