What October 2026 Taught Engineering Leaders About Preventing Supply Chain Attacks

In this article:
Subscribe to our blog:

In one week of October, critical problems hit the PHP runtime, a compression library that HTTP clients depend on, a self-managed source control platform, a set of certificate authorities and a package on PyPI. A lot of that exposure came through components the affected teams didn't write themselves. Codacy's dependency scans found the eMudhra flaw in 576 repositories across 72 organizations.

TL;DR
  • In one October week, five different layers of the software stack had critical problems at the same time.
  • Attackers went after the PHP flaws in large numbers, and change processes built for a normal week can struggle to keep up.
  • Much of the exposure came through dependencies and bundled components, so a useful first question is whether the vulnerable path is reachable in your code.
  • Being ready means an always-current inventory, checks in the pull request, pre-planned patch paths and credential hygiene, all funded as a running cost.

One Week, Five Layers of the Stack Broke

The disclosures landed on 17 October (eMudhra) and 21 October (PHP2Shell, Brotli and GitLab). Here is what broke, layer by layer:

Then the layers started stacking. CISA notes that a Linux kernel flaw, CVE-2026-46300, "can be chained with CVE-2026-109618 and CVE-2026-109619 to implant PHP webshells and run commands as root."

Any one of these would have been a normal bad week. The trouble was that every layer had its bad week at once.

The Patch Window Is Getting Shorter

Attackers did not wait for the patch cycle. AWS saw attempts to exploit the PHP flaws as early as 17 October, four days before public disclosure. The official clock was short too: CISA gave US federal agencies until 29 October, three days after the listing, to deal with them.

An attacker needs one exploit that works. A company needs a ticket, an owner, a change window and a test run before anything moves.

Change control exists for a good reason. Rushed patches can break production. So I'm not arguing for skipping the controls. I'd rather see teams decide the patch path before a disclosure lands, so a fast fix can still go through review, testing and a rollback plan.

The pressure is also getting worse. Verizon's 2026 Data Breach Investigations Report says software vulnerabilities have overtaken stolen passwords as the top way attackers get in, and that attack techniques "are now being bolstered by generative AI." If finding bugs gets cheaper for defenders and attackers alike, I'd plan for more critical CVEs a month, not fewer.

Much of Your Exposure Is Code You Didn't Write

Much of the risk in an incident like this sits in dependencies and container base images rather than in first-party code.

Codacy's own scan data shows how that played out.

black october data codacy

Dependency scanning found the eMudhra flaw CVE-2026-111943 in 576 repositories across 72 organizations, with 640 findings still open (the CVE was assigned so that updated CA certificate bundles, such as ca-certificates and the copies shipped with Go, Java and Perl, could be tracked like any other package fix).

It found the Brotli flaw in 12 repositories across 11 organizations. Container scanning, which covers the Docker images customers upload to Codacy, found the eMudhra flaw in 96 repositories and the Brotli flaw in 47, with 163 Brotli findings still open.

The PHP2Shell flaws turned up in one repository's images. The GitLab flaw CVE-2026-110264 didn't show up in either scan, as you'd expect: it sits in a server teams host themselves, so it needs a patch path rather than a dependency fix.

So the question for the next morning is "is the vulnerable path reachable in our code?", and ideally you want the answer within hours, not days. Answering it completely is hard. A dependency map (see our guide to software dependency management) tells you whether the package is in your tree and how it got there. Software composition analysis narrows it down quickly, but that last check still needs someone looking at your code.

How to Prevent Supply Chain Attacks Before the Next Black October

Preparing doesn't mean another fire drill. It means changing the routine so the next disclosure is a short, rehearsed exercise rather than a scramble. Four habits are a good place to start:

  • An always-current dependency inventory. A software bill of materials generated once a year for an audit can be out of date the day a CVE lands.
  • Security checks in the pull request, before code merges. Catching a vulnerable dependency or an exposed secret at the PR is usually cheaper than finding it in production, and it is the part of CI/CD pipeline security developers actually see.
  • Pre-planned patch paths, including for self-hosted tools like source control. Decide now who patches what, in which window, and how to roll back. This is the answer to the change-control objection.
  • Credential hygiene. The LiteLLM release carried malware that steals credentials, so short-lived tokens, rotation and secrets scanning belong next to patching.

We cover the wider practices in software supply chain security.

Budget for Security as a Running Cost

Here is where Codacy fits. Dependency scanning shows the chain to a transitive vulnerability, with a prompt to find the affected functions in your code. That narrows the reachability question, although it is not full reachability analysis. Merge gates on SAST, secrets and dependencies run on every pull request, and you can export an SBOM in CycloneDX.

On the Business plan, every dependency in the codebase and every container image SBOM is re-scanned daily for new CVEs.

Whatever tools you use, the decision in front of a VP is about money and habits. Weeks like Black October are likely to come again. Fund the inventory, the PR checks and the patch paths as a standing budget line, the way you fund on-call. Otherwise you are likely to pay for them anyway, as emergency spend after the next big disclosure.

Know which dependencies you actually run

Codacy re-scans your dependencies daily for new CVEs and shows the chain to a transitive vulnerability, with a prompt to find the affected functions in your code.

Scan your repository for free →


Supply Chain Attacks FAQs

 

What is a supply chain attack?

A supply chain attack is an attack that compromises software through something a team depends on, such as a library, a package registry, a build tool or a vendor, instead of attacking the team's own code directly. The malicious LiteLLM release on PyPI that carried credential-stealing malware is the example from this October week. For the full definition, see our guide to software supply chain security.

How to prevent supply chain attacks?

Preventing supply chain attacks means shrinking the time between a disclosure and your answer to "are we exposed?", because you cannot stop upstream code from breaking. Four habits help: an always-current dependency inventory, security checks in the pull request, patch paths decided before the disclosure lands, and credential hygiene such as short-lived tokens, rotation and secrets scanning. The aim is a short, rehearsed exercise rather than a scramble.

What is software composition analysis, and what is SCA in cyber security?

Software composition analysis (SCA) is the scanning of the open-source dependencies in a codebase, including transitive ones, to find known vulnerabilities in them. In practice it tells you whether a vulnerable package is in your tree and how it got there, which is the first half of the reachability question. Someone still has to check whether your code calls the affected functions, so SCA narrows it down quickly but doesn't finish the job. Our guide to software composition analysis goes deeper.

How to generate an SBOM?

Generating an SBOM means exporting a machine-readable inventory of every component in your software, ideally from a tool that scans your repositories automatically rather than from a manual spreadsheet. The format matters less than the timing: an SBOM produced once a year for an audit can be out of date the day a CVE lands. Codacy can export an SBOM in CycloneDX, and our SBOM guide covers the process.

What is a vulnerability remediation process?

A vulnerability remediation process is the agreed sequence a team follows from the moment a flaw is disclosed to the moment it is fixed: who owns it, which window it ships in, how it gets tested and how it rolls back. Those decisions are easier to make before a disclosure than during one. Change control exists because rushed patches can break production, so the goal is a fast fix that still goes through review, testing and a rollback plan.

Subscribe to our blog

Stay updated with our monthly newsletter.