Breach Watch: PHP2Shell Flaws Hit Web Servers

Breach Watch: PHP2Shell Flaws Hit Web Servers
CISO PLATFORM · BREACH INTELLIGENCE
BREACH WATCH
Daily Breach Intelligence for Security Leaders · October 21, 2026

TL;DR for CISOs: Two critical PHP flaws, tracked as PHP2Shell, allow unauthenticated code execution on web servers, and attack attempts appeared before and around the October 21 patch release. Patch to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35 or apply your vendor's backport, because the interim settings reduce exposure but do not make a server safe.

BOTTOM LINE FOR CISOS
  1. PHP sits underneath most of your public web estate, including CMS platforms, vendor-run portals and legacy internal apps. Your PHP inventory, not your CMS inventory, now determines your exposure window.
  2. CISA and partner agencies describe SafePay gaining entry through exposed credentials, VPN access and unpatched edge devices, then resetting backup NAS devices. Your edge patching and backup isolation are the controls that decide the outcome.
  3. Two developer-tooling incidents in one day, a poisoned LiteLLM release and a CVSS 10.0 GitLab patch, put build pipelines and secrets in scope. Treat package installs and self-managed source control as production attack surface.

Today's slate at a glance

Story Severity Who is exposed First action
PHP2Shell: two critical PHP RCE flaws Critical Any host serving PHP web requests, highest risk on Apache mod_php Inventory PHP versions and apply the October 21 fixed releases or a vendor backport
SafePay ransomware joint advisory, 600+ organizations High Critical infrastructure and business services with exposed VPNs, edge devices or weak MFA Check edge device patch levels against the advisory CVEs and isolate backups
LiteLLM 1.107.0 poisoned on PyPI and Docker High Teams that installed the package or pulled the image on October 21 Look for cook.pth, rotate every reachable credential, pin to 1.106.2
GitLab CVSS 10.0 regex flaw, CVE-2026-110264 Critical Self-managed GitLab instances, including older unsupported versions Upgrade to a fixed release; no workaround is published

Lead story: PHP2Shell, two critical PHP flaws allow unauthenticated code execution

CRITICAL · WEB PLATFORM / ACTIVELY PROBED
BOARD-READY LINE
Two critical flaws in the PHP runtime let an unauthenticated request run code on web servers. Patches shipped on October 21 and attack attempts were seen around the release. We are inventorying PHP versions across our public estate and will report patch status by tomorrow.

Key facts

Item Detail Status
Flaws CVE-2026-109618 (out-of-memory corruption) and CVE-2026-109619 (stale global state), both rated CVSS 9.2 per SecurityWeek Reported
Impact Unauthenticated remote code execution as the web worker account. RCE was confirmed on Apache with mod_php, and the flaws can also expose process memory Reported
Affected PHP-FPM, Apache mod_php, php-cgi, FrankenPHP and LiteSpeed. Nearly all releases back to 5.4 per SecurityWeek. PHP 8.1 and older no longer get upstream updates Reported
Fixed releases PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, plus source backports for 7.4, 8.0 and 8.1 Vendor release
Exploitation Cloudflare and Patchstack saw attempts earlier on October 21. WatchTowr saw attempts around release with no successes. Hadrian reported exploitation at scale Vendor reports
Exposure VirusTotal estimates over 5.1 million PHP hosts exposed online. Wiz says about 70 percent of websites are affected Third-party estimates

What happened

Wiz, OpenAI and Calif found the flaws in August 2026 and worked with the PHP security team on fixes. According to SecurityWeek, details leaked on October 20, ahead of a coordinated disclosure planned for October 22, so PHP released patches a day early.

Both flaws come from PHP leaving memory in a corrupted state when a request ends abnormally. BleepingComputer reports a demonstrated exploit in which an unauthenticated request triggers the attack before application code runs. The UK National Cyber Security Centre told organizations to update immediately or take affected systems offline.

PHP core developer Gina Peter Banyard said no mitigation fully blocks attacks and that official patches are the only permanent defense. Wiz says the two CVEs group four memory-safety issues and that other variants may exist.

Evidence

What this means for your team

The hard part of this incident is finding PHP, not patching it. PHP runs inside CMS platforms, vendor-managed portals, admin tools and container images that rarely appear in a software inventory under that name. Start from internet-facing hosts and work inward.

Cloudflare described its web application firewall rules as temporary, and the vendor guidance says interim settings reduce exposure without making a host safe. A WAF in front of a vulnerable runtime buys hours, not a fix. Your decision for any system that cannot be patched today is whether to take it offline.

The patch window is also a forensics window. Attempts began before the fixes were public, so servers that were reachable on October 20 and 21 deserve a look at web logs and for unexpected processes spawned by the web worker account.

Action checklist

  1. Build a list of every internet-facing host and container image running PHP, record the version and SAPI (mod_php carries the highest risk per the PHP security team), and rank by exposure.
  2. Apply 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or the vendor or distribution backport. For PHP 7 and older, plan migration and confirm in writing what your hosting vendor has backported.
  3. Where patching cannot happen today, apply the published interim settings, keep WAF rules on, restrict the host to required traffic, and set a dated plan to take it offline if it stays unpatched.
  4. Review web server and PHP error logs from October 20 onward for crashes, out-of-memory events, session upload-progress requests and new child processes, and rotate secrets that were readable by the PHP worker if you find signs of access.

Supporting story: CISA and partners say SafePay ransomware has hit more than 600 organizations

HIGH · RANSOMWARE / CRITICAL INFRASTRUCTURE
BOARD-READY LINE
Government agencies on three continents say one ransomware group has breached at least 600 organizations using stolen credentials, exposed VPNs and unpatched edge devices. We are confirming MFA coverage on every remote access path and testing that backups cannot be reached from the production network.

Key facts

Item Detail Status
Advisory Joint advisory with CISA, the FBI, the U.S. Secret Service, Germany's Landeskriminalamt Rheinland-Pfalz and the UK National Crime Agency. BleepingComputer identifies it as AA26-293A Government advisory
Scale At least 600 organizations since August 2024 across North America, South America, Europe and Australia. The leak site lists only victims who did not pay, so the real count is likely higher Per CISA, as reported
Initial access Credential exposure, brute force, VPN access including phished account profiles tied to Mullvad, and automated exploitation of edge device flaws Per advisory
Named CVEs Cisco ASA CVE-2023-20269 and CVE-2020-3259, Veeam CVE-2023-27532 and CVE-2024-40711, SonicWall CVE-2024-40766 per HIPAA Journal Reported by one outlet
Backups BleepingComputer reports the group resets NAS devices that hold backups and deletes shadow copies Reported
Conduent Infosecurity Magazine names Conduent as a suspected victim. HIPAA Journal reports Conduent said 62.2 million people were affected Third-party reporting

What happened

According to BleepingComputer, SafePay appeared in August 2024 as a private group that does not use affiliates, and since early 2025 it has filled the space left by BlackCat and LockBit. It steals data before encryption and threatens to publish it.

Infosecurity Magazine reports that after gaining access the operators take over or create accounts, move with built-in administration tools and remote access software, disable security software and use tools such as RClone and FileZilla to move data out. Encryption combines ChaCha20 with RSA.

The advisory recommends prioritizing known exploited vulnerabilities, enforcing multifactor authentication on all accounts, limiting administrative tools and privileges, keeping offline, immutable backups that are tested, and segmenting networks.

Evidence

What this means for your team

This advisory is a checklist you can score yourself against today. Every named entry point is a control most security teams already own: patching edge devices, MFA on VPN, credential hygiene and backup isolation. Where one of them is weak, the advisory gives you outside evidence for the funding conversation.

Backup targeting changes the recovery question. If a NAS that holds backups can be reset by an account that also administers production, the backup exists on paper only. Ask your infrastructure owner who holds credentials to the backup platform and whether those credentials are separate.

The Veeam, Cisco and SonicWall entries are older flaws. Attackers keep using them because some devices were never patched, which makes asset inventory a ransomware control.

Action checklist

  1. Compare your edge device and backup software versions against the CVEs named in the advisory and the CISA Known Exploited Vulnerabilities catalog, and patch or retire anything still exposed.
  2. Confirm MFA on VPN, remote access, email and administrator accounts, and review VPN logs for sign-ins from unusual hosting or commercial VPN address ranges.
  3. Test a restore from an offline or immutable copy this quarter, and verify that production administrator accounts cannot change or delete backup jobs, snapshots or NAS settings.
  4. Alert on mass shadow copy deletion, new remote access tools on servers and large outbound transfers to cloud storage from systems that do not normally send data.

Supporting story: LiteLLM 1.107.0 was poisoned on PyPI and Docker with a credential stealer

HIGH · SOFTWARE SUPPLY CHAIN / AI TOOLING
BOARD-READY LINE
A poisoned release of a widely used AI gateway library ran a credential stealer on install. Anyone who installed version 1.107.0 or pulled the affected image on October 21 should treat reachable secrets as stolen. We are checking build logs and rotating credentials for any host that pulled it.

Key facts

Item Detail Status
Affected litellm 1.107.0 on PyPI (seven wheels) and the v1.107.0 Docker image. StepSecurity says the floating latest, main-latest and main-stable tags also pointed to the infected image for about three hours Researcher analysis
Mechanism A startup file named cook.pth runs on every Python interpreter start, with no import of LiteLLM needed. It runs a credential collector and installs a background process that checks a GitHub-hosted location hourly for code to run Researcher analysis
Data targeted Cloud and developer credentials, SSH and GPG keys, browser data, environment variables and AI tool configs. On LiteLLM proxy hosts with DATABASE_URL set, provider API keys and model configuration Researcher analysis
Timeline (UTC) StepSecurity: uploaded to PyPI about 11:39 on October 21, reported in a project issue at 12:06, removed from PyPI by 13:23, infected images removed by 14:32 Per StepSecurity
Vendor status LiteLLM says the original attack vector is not yet traced. Malicious actions ran through three engineers' GitHub accounts, likely using stolen GitHub CLI OAuth tokens, and all involved tokens were revoked Vendor statement
Clean version 1.106.2, pinned by digest for containers Vendor and researcher guidance

What happened

The Hacker News reports that attackers used three engineers' GitHub accounts, one to trigger the release workflow and a second to approve it. StepSecurity says the release was built from a lookalike repository rather than the official BerriAI repository, and that BerriAI is still investigating how it was published.

The package was quarantined on PyPI and the malicious images were removed. LiteLLM also removed trusted publisher links to its GitHub organization on public registries and cut access to its GitHub organization to one unaffected user while the investigation continues.

The Hacker News notes the same startup-execution behavior appeared in a March 2026 LiteLLM compromise linked to the TeamPCP campaign. It describes this as a similarity and not an attribution for this incident.

Evidence

What this means for your team

A model gateway sits next to your most valuable keys. It holds provider API keys, cloud roles and the master key that issues access to every internal AI application, so one poisoned release can turn into a spend, data and access problem at once.

The two safeguards that failed were not exotic: a release approved through accounts whose tokens were stolen, and consumers who pull the newest version automatically. Pinning by digest and delaying new releases by a day or two would have kept most teams out of this window.

Because the stealer ran at interpreter startup, removing the package is not enough. Hosts that ran Python after install need review for the leftover files and background process.

Action checklist

  1. Search build logs, lockfiles, notebooks and container registries for litellm 1.107.0 and for image pulls on October 21 between roughly 11:48 and 14:32 UTC, and purge cached copies from internal mirrors.
  2. On any host that ran it, check site-packages for cook.pth, cook.py and an unexpected sitecustomize.py, stop the background process, and replace the machine or container instead of cleaning it in place.
  3. Rotate every credential reachable from those hosts, including cloud keys, SSH and GPG keys, registry and CI tokens, and on proxy hosts the provider API keys, master key and salt key stored in the database.
  4. Pin LiteLLM to 1.106.2 by digest, block litellm.dev at DNS or egress, and search network logs for requests to it. Add a cooling-off period for new package versions in your build system.

Supporting story: GitLab patches a CVSS 10.0 regex flaw affecting self-managed releases back to 7.0

CRITICAL · DEVELOPER PLATFORM / PATCH NOW
BOARD-READY LINE
A maximum-severity flaw in self-managed GitLab could let an unauthenticated user run code on the server under conditions GitLab has not detailed. There is no workaround, GitLab reports no exploitation, and fixes are out. We are upgrading every self-managed instance and confirming none run an unsupported branch.

Key facts

Item Detail Status
Flaw CVE-2026-110264, CVSS 10.0, an integer overflow when compiling a crafted regular expression, leading to code execution. The component is Onigmo, the regex engine in Ruby Vendor advisory
Affected Self-managed GitLab CE and EE from version 7.0 onward. GitLab.com already runs the fix and GitLab Dedicated tenants on recent builds already have it Reported
Fixed versions 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 and 18.11.13 Vendor release, October 21
Exploitation GitLab reports no evidence of exploitation. The Hacker News says it was not in the CISA KEV catalog as of October 22 Vendor statement
Workaround None offered. The Hacker News reports patching is the only confirmed protection Reported
Release scope GitLab lists 12 security fixes in the release, one critical, two high, four medium and five low Vendor advisory

What happened

GitLab published the release on October 21, backporting the fix to four branches outside its normal release cycle, which it does for severe issues. According to The Hacker News, a researcher using the handle joaxcar reported it, and it is the fourth code-execution flaw in GitLab's regex handling that the researcher has reported within a month.

The Hacker News also reports that an October 12 fix for CVE-2026-97229, an earlier unauthenticated regex overflow rated 10.0, means instances patched then fall back into the affected range under this release. Check your version against the October 21 list, not the earlier one.

Upgrades to 19.4.3 and 19.3.6 include database migrations, so single-node installations should plan for downtime. GitLab published two detection rules for application logs in Sigma format.

Evidence

What this means for your team

Source control holds your code, pipeline secrets and deploy credentials, so a server-side code execution flaw there is an access path into production. Absence of known exploitation is a lead time, not a clearance, given how quickly fixed flaws get reverse engineered.

The version table is the useful detail for planning. Four of the seven fixed branches fall outside GitLab's standard support window, which means a lagging instance may need a multi-step upgrade and a maintenance window, not a quick patch.

If the instance is reachable from the internet, ask whether it needs to be. Moving it behind VPN or an identity-aware proxy shrinks the unauthenticated attack surface for the next flaw too.

Action checklist

  1. List every self-managed GitLab instance, including team-run and test servers, with its version and whether it is reachable from the internet.
  2. Upgrade to the fixed release for your branch, scheduling downtime for single-node installs that run migrations, and verify the running version after the change.
  3. Deploy GitLab's published Sigma detections to application logs, and review logs for Onigmo worker crashes and unusual rendering errors since October 12.
  4. Rotate CI/CD variables, runner tokens and deploy keys on any instance you cannot show was unreachable, and restrict inbound access to the instance to the networks that need it.

Also notable

  • Onamae.com Desktop Cloud (Japan): GMO Internet's VPS service confirmed on October 20 that a third party installed unauthorized programs on some customer servers, then began shutting servers down on October 21. Up to 26,739 servers are affected, the service is suspended with no restart date, and customers should rotate any secrets stored on their servers. Payment card data is reported to sit on separate infrastructure. Source: BleepingComputer (single source reviewed).
  • State Bank of India: SBI told stock exchanges on October 21 that it identified 3,897 customer records in a dark web set of about 375,000 records. The figure is preliminary, the source and authenticity are unconfirmed, and the filing lists no account numbers, passwords or card details. A threat actor claim of 375,000 rows has not been verified. Source: The Hacker News (single source reviewed).
  • UpdraftPlus and UpdraftCentral: TeamUpdraft says a website breach on October 17 and 18 may have exposed customer connection keys, which attackers used to plant backdoors on connected WordPress sites over an 18-hour window per Patchstack. Update UpdraftPlus to 1.26.12 or later, remove the connection key and review administrator accounts and plugins. Source: The Hacker News (single source reviewed).

Frequently asked questions

What is PHP2Shell?

PHP2Shell is the name used for two critical PHP runtime flaws, CVE-2026-109618 and CVE-2026-109619, both rated CVSS 9.2. They allow unauthenticated remote code execution on web servers, and PHP released fixes on October 21, 2026.

Which PHP versions fix PHP2Shell?

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, plus source backports for PHP 7.4, 8.0 and 8.1. PHP 8.1 and older no longer receive upstream updates, so check whether your distribution or hosting vendor has backported the fix.

Do the interim PHP settings protect my server?

No. The PHP security team and a PHP core developer say the settings reduce exposure but do not fully block attacks, and that patching is the only permanent defense.

How many organizations has SafePay ransomware breached?

CISA, as reported by BleepingComputer, says at least 600 organizations since August 2024, across North America, South America, Europe and Australia. The true number is likely higher because the group's leak site lists only victims who did not pay.

What should I check if I installed LiteLLM 1.107.0?

Look for cook.pth, cook.py or an unexpected sitecustomize.py in site-packages, stop the background process, replace the host or container, and rotate every credential it could reach. Pin LiteLLM to 1.106.2 by digest.

Is the GitLab CVE-2026-110264 flaw being exploited?

GitLab reports no evidence of exploitation, and The Hacker News says it was not in the CISA Known Exploited Vulnerabilities catalog as of October 22. There is no workaround, so upgrade self-managed instances to a fixed release.

What should a CISO do first this week?

Inventory internet-facing PHP hosts and patch them, verify MFA and edge device patching against the SafePay advisory, hunt for LiteLLM 1.107.0 in build systems, and upgrade any self-managed GitLab.

CISO Platform Breach Intelligence Team
Curated by Pritha Aash, Community Head, CISO Platform
Last updated: October 22, 2026

Corrections and takedown requests: CISO Platform is committed to accuracy and fairness. If any detail in this briefing is inaccurate, or if you represent an affected organization and would like a correction or removal, please contact us at pritha.aash@cisoplatform.com and we will review your request promptly.

★
★
★
★
★
Votes: 0
E-mail me when people leave their comments –

You need to be a member of CISO Platform to add comments!

Join CISO Platform

Join The Community Discussion