1. Red
  2. Learn
  3. October 2026 incidents

Worst month in cybersecurity 2026? What October shows

Is October 2026 the worst month in cybersecurity? A dated, primary-sourced list of the incidents, which need action this week, and how to check your stack.

By Alexander Gusev, run.cloudPublished 28 October 20268 min readHow we check facts
On this page
  1. What actually happened in October 2026?
  2. Who is affected, and who is not?
  3. Why does it feel like one event when it is not?
  4. Was any of it exploited?
  5. How do I fix it?
  6. Am I affected? A three-state self-test
  7. What would a scan tell me?
  8. What is the bug class behind these, without the exploit?

October 2026 has no official ranking as the worst month in cybersecurity, but it did bring an unusual cluster of unrelated, serious disclosures between 5 and 23 October. The ones most site owners must act on are PHP2Shell (update PHP, restart workers), GitLab, Node.js and Plex. Check which of them you run, then follow the vendor's fixed version.

IncidentWhat the primary source saysFixed version or actionChecked
PHP2Shell, CVE-2026-109618 and CVE-2026-109619Remote code execution in PHP core, disclosed 21 October (php.net). On CISA's exploited list since 26 OctoberPHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or a vendor backport2026-10-28
GitLab, CVE-2026-110264CVSS 10.0, unauthenticated code execution on self-managed CE and EE (GitLab)18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 or 19.5.12026-10-24
Node.js, ten CVEs including CVE-2026-111497A Brotli decoder write that can lead to code execution, plus TLS hostname flaws (Node.js). CISA added the Brotli flaw to its exploited list on 27 October22.23.4, 24.22.1 or 26.12.12026-10-28
Plex Media Server, four CVEsPlex says they are actively exploited; CISA listed them on 20 October (Plex, CISA)1.43.3.10861 or later2026-10-24
LiteLLM 1.107.0Malicious PyPI and container artifacts published for a few hours on 21 October (LiteLLM)Rotate every secret the host could read2026-10-24

What actually happened in October 2026?

The table below keeps one row per incident, with the claim limited to what the affected party or agency published. Most rows are vendor accounts of their own incident, so we label them as such.

IncidentDatesWho must actSource
PHP2ShellDisclosed 21 OctoberAnyone whose site is served by PHPphp.net
GitLab CVE-2026-110264Patched 21 OctoberSelf-managed GitLab operators. GitLab says GitLab.com and Dedicated were already patchedGitLab
Node.js security releases21 OctoberAnyone running Node.js 22, 24 or 26, or an end-of-life lineNode.js
PlexCVE update 19 October, CISA listing 20 OctoberOperators of Plex servers older than 1.43.3.10861Plex
LiteLLM 1.107.021 October. Vendor-claimed windows (UTC): PyPI 11:39 to 13:23, Docker Hub 11:46 to 14:20, GHCR from 11:46 until made unavailable by 13:51Anyone who ever started Python with 1.107.0 or ran the affected image digest. LiteLLM says to treat that environment as compromisedLiteLLM
eMudhra intermediate certificatesReported to Mozilla 17 OctoberMostly browser and OS vendors. Keep systems updatedMozilla
PingCAP (TiDB Cloud)Intrusion 9 September to 7 October, published 19 October (vendor-claimed)TiDB Cloud customersPingCAP
RailwayDisclosed 21 October. Railway says it was resolved for existing users on 26 October (vendor-claimed)Accounts created before 21 October, and sensitive variables stored before that date, per Railway's 22 October reportRailway
ZeaburSecond incident 14 to 15 October, report 19 October (vendor-claimed)Anyone with variables or servers thereZeabur
SafePay ransomware advisory20 OctoberOrganisations with exposed VPNs, edge devices and old file-transfer softwareCISA AA26-293A
Tor relay hostsReported 5 OctoberTor relay operatorsTor Project

Who is affected, and who is not?

Most readers are affected by one row, not all of them. A WordPress or WooCommerce site may be touched by PHP2Shell, because the bug sits in the PHP engine under the application. Whether yours is affected depends on the PHP runtime that serves it: a visible version below the fixed release is detected, a hidden version or possible vendor backport is unknown, and only a fixed package or build identifier plus a restart is confirmed by owner evidence (PHP). Our guide to fixed PHP versions has the fixed versions and the host question.

The platform incidents are different. Railway, Zeabur and PingCAP each describe stolen internal credentials. If you have no account with them, those rows are not yours. If you do, read each company's own notice for what was exposed. Rotation walk-throughs exist for Railway secrets, Zeabur customers and TiDB Cloud keys. PingCAP lists account details, SQL editor content and billing information as well as encrypted API-key values.

Why does it feel like one event when it is not?

The sources do not describe one campaign. They describe at least five separate causes:

Railway says it believes its incident is part of a series of attacks recently targeting platform companies (Railway, 21 October). That is Railway's belief in its own disclosure. We did not find an independent source that confirms it.

Several viral claims do not survive a check against the primary sources. PingCAP's report gives no data-volume or extortion figure, so repeat none. For eMudhra, the certificate count in Mozilla's post is eight: private keys for eight intermediate certificates were compromised. The only other count we found is one commenter's on Mozilla's incident bug: 107,107 certificates signed with six of the keys were logged on 20 and 21 October, nearly all proofs of concept for google.com. Attribute it to that commenter, and add no other claim about the keys. And the Japan claim is a quote, not a declaration: the party's own page says its cybersecurity headquarters chair described an emergency situation at a meeting on 9 October, and that the government office did not yet know whether the incidents were related (LDP, 14 October).

SafePay's "at least 600" is the wording of the joint advisory itself, which says the group has impacted at least 600 separate victims. The advisory does not say whether the figure comes from the group's claims or from investigators' counts, so treat it as an estimate, not a victim list. The defensive steps for exposed VPNs and edge devices are on their own page.

Was any of it exploited?

It depends on the row, and the labels matter.

IncidentExploitation status at our check on 28 October 2026Source
PlexVendor says actively and widely exploited; in CISA's catalog since 20 OctoberPlex, CISA
PHP2ShellIn CISA's catalog since 26 October. Attempts seen by AWS honeypots from 17 October (vendor telemetry); AWS says it is unclear whether those would have worked on real systemsCISA, AWS
GitLabGitLab publishes two detections for self-managed servers. Its notice does not say exploitation was observedGitLab
Node.jsThe release page does not state active exploitation. CISA added the Brotli flaw, CVE-2026-111497, to its catalog on 27 OctoberNode.js, CISA
eMudhraMozilla's post does not say whether misuse was observed. It says it blocked the certificates through OneCRL on 17 October. Since then, a commenter on Mozilla's incident bug reports 107,107 certificates signed with six of the keys in public logs on 20 and 21 October, nearly all proofs of concept. eMudhra says it issued no end-entity certificates from themMozilla

How do I fix it?

If a host manages your stack

Send support the PHP question and keep the answer:

For [your domain], is the PHP runtime that serves web requests patched for CVE-2026-109618 and CVE-2026-109619? Please give the fixed package, build or backport identifier, confirm that all workers serving it have been restarted or replaced, and say whether I need to redeploy or change a setting.

  • Get the answer in writing, naming your domain.
  • If you store secrets on Railway or Zeabur, follow each company's own rotation instructions: Railway's 22 October report and Zeabur's report.
  • If you use TiDB Cloud, follow PingCAP's 20 October customer guidance: organization owners inventory the API keys, create a new key, update and verify what uses it, then delete the old key.

If you run the software yourself

  • PHP: install your distribution's fixed package, then restart PHP-FPM or Apache. Details are on the PHP2Shell page. PHP's separate notice dated 23 Oct 2026 (php.net, CVE-2026-115560) suggests setting session.upload_progress.enabled=0 until the next regular bugfix release. PHP says the issue needs an unusual combination: session.serialize_handler set to php_binary or php_serialize in configuration, switched to php with ini_set() before session_start(), with upload progress still enabled. Applications that never change the serialize handler at runtime can keep the feature enabled, and if you already applied the setting for CVE-2026-109619, PHP says to keep it.
  • GitLab: upgrade to the fixed patch for your line, as GitLab's notice lists.
  • Node.js: move to 22.23.4, 24.22.1 or 26.12.1 (Node.js), then rebuild and redeploy images. The Node.js patch details explain each line.
  • Plex: update to 1.43.3.10861 or later (Plex). Plex says to assume an older server reachable from the internet may be compromised.
  • LiteLLM: if you ever started Python with 1.107.0 or ran the affected image digest, LiteLLM says to treat the environment as compromised. Follow its cleanup steps in its order (it says not to start with pip install), rebuild images and virtual environments from scratch, then rotate everything the host could reach. Cached copies count too.

The running list of October incidents keeps these rows current, and the checklist for this week puts them in order. The other incident write-ups cover each in depth.

Am I affected? A three-state self-test

Am I affected? Where you stand right now

A check from outside can name a technology and a version. It cannot see a vendor backport, which runtime serves a domain, or whether anything restarted.

  1. Detected Your site serves a product from the table and its visible version is below the fixed one. A version string alone does not show exposure, because a vendor backport can keep an older one. Ask whoever runs it, or patch it, today.
  2. Unknown The version is hidden, could be a backport, or you do not know what runs behind the domain. This is the common case. Ask your host or check the server.
  3. Confirmed by owner evidence You hold the fixed package or build identifier naming the CVE, and a restart or redeploy time after it. The remaining question is whether anything happened before you patched.

No scan, ours included, moves you from "unknown" to "confirmed".

What would a scan tell me?

The free scan reads the stack your site serves and matches each version to known vulnerabilities. One per domain, no card. It is a lookup: it can say a version is affected, not whether your setup is exposed. The full scan is $100 per scan.

What is the bug class behind these, without the exploit?

The product bugs are memory-safety and parsing errors reachable from the network: PHP's engine, GitLab's regular-expression compiler, Node.js's Brotli decoder. The platform incidents are about credentials and trust: secrets stored with a provider, a release pipeline, and keys at a certificate authority. This page links the vendors' advisories for conditions and fixes and reproduces no exploit material, because you do not need it to patch.

Questions people ask

Is October 2026 really the worst month in cybersecurity?

Nobody has published a measure that ranks months, so the claim cannot be checked. What the primary sources do show is a cluster of unrelated disclosures within about three weeks, several of them serious. Treat the ranking as a headline and the individual advisories as the facts.

Why are there so many breaches in October 2026?

The incidents on this page have different causes: a bug in PHP, a bug in GitLab, a poisoned software release, stolen service credentials at platform companies and weak keys at a certificate authority. We found no primary source that links them. They landed close together, and that is mostly what makes the month feel unusual.

I run a WordPress or WooCommerce site. Which of these affects me?

It depends on the PHP runtime that serves your site, which a visit from outside cannot show. [PHP's advisory](https://www.php.net/archive/2026.php) covers all PHP installations serving web requests and lists fixed releases 8.5.12, 8.4.27, 8.3.36 and 8.2.35, with some distributions and LTS vendors providing backports. Running WordPress does not tell you which of those you have. Your host or you can confirm the PHP package and that workers were restarted. The other incidents only matter if you also use that product, such as GitLab, Plex, Node.js or LiteLLM.

Should I rotate all my passwords because of October 2026?

No blanket rotation is called for. Rotate what the specific vendor tells you to rotate: environment variables on Railway or Zeabur, TiDB Cloud API keys, and every secret a host could read if it ran LiteLLM 1.107.0. A certificate authority incident does not ask ordinary users to change passwords.

Is my site hacked if it runs an affected version?

Not necessarily. A visible version below the fix is a reason to ask your host, and it does not show that the site is exposed or that anything got in. A check from outside cannot see a vendor backport, which runtime serves a domain, or whether workers were restarted after patching.

What should I do first this week?

List what you run: PHP, GitLab, Node.js, Plex, LiteLLM and any hosting platform that stores your secrets. Then compare each against the fixed version in the table above, and ask your host the one PHP question in the fix section.

Sources

  1. PHP security notices, 21 and 23 October 2026 (php.net)CVE-2026-109618 and CVE-2026-109619, fixed releases 8.5.12, 8.4.27, 8.3.36 and 8.2.35. The 23 October notice names a separate CVE-2026-115560.
  2. Amazon Threat Intelligence: PHP2Shell exploitation seen in MadPot before disclosure (AWS Security Blog, 21 October 2026)Vendor telemetry. AWS says it is unclear whether the attempts would have succeeded on real systems.
  3. GitLab critical patch release 19.5.1 (21 October 2026)CVE-2026-110264, CVSS 10.0, fixed versions, detections.
  4. Node.js October 2026 security releases (21 October 2026)
  5. LiteLLM security incident report (21 October 2026, updated 20:30 UTC)Vendor account. Affected artifacts and time windows.
  6. Plex security update post (update of 19 October 2026)
  7. CISA KEV additions bulletin (20 October 2026)Lists the four Plex CVEs.
  8. PHP security advisory GHSA-w8hw-w9fx-j79w (GitHub)Credits external reporters and, separately, remediation developers. Checked 24 October 2026.
  9. Wiz Research: PHP2Shell discovery reportWiz says Wiz Research uncovered the vulnerabilities. Checked 24 October 2026.
  10. CISA joint advisory AA26-293A: SafePay (20 October 2026)
  11. CISA Known Exploited Vulnerabilities catalog (CSV feed)Both PHP2Shell CVEs were added 2026-10-26 (due 2026-10-29) and Node.js Brotli CVE-2026-111497 on 2026-10-27. GitLab CVE-2026-110264 was not listed. Read on 28 October 2026.
  12. Mozilla Bugzilla 2083449: eMudhra private key compromise of intermediate certificatesComments 43 and 44 (25 October): eMudhra exits public TLS; a commenter counts 107,107 certificates signed with six of the keys. Read on 28 October 2026.
  13. Railway preliminary report on the October security incident (updated 26 October 2026)Scope (at most 1.85% of workspaces had some environment variables potentially compromised) and the 26 October resolution update.
  14. Mozilla Security Blog: protecting Firefox users after the eMudhra intermediate certificates compromise (20 October 2026)
  15. Railway security disclosure (21 October 2026)
  16. PingCAP security update, October 2026 (19 October 2026)
  17. Zeabur preliminary incident report (19 October 2026)
  18. Zeabur shutdown notice (17 October 2026)
  19. Tor Project forum: relay security incident (5 October 2026)
  20. Liberal Democratic Party of Japan: account of the 9 October cybersecurity headquarters meeting (14 October 2026)

Facts on this page are dated and point at the primary source next to them. If a vendor status changes after the date shown, the vendor's page wins; tell us at support@run.cloud and we will update it.