SERVICESWORKBLOGCONNECT
HOME / BLOG
INFORMATION SECURITY October 22, 2026 · 11 min read

One Day of Security News, and Why People Alone Will Not Keep Up

On October 21, 2026 PHP, GitLab, LiteLLM, Railway and CrowdStrike all published bad news within hours. What each one means in plain words, who else is exposed, what we did on our own servers, and the Colorado 30-day clock.

October 21, 2026 was one of those days. Five separate announcements landed within hours of each other, and each one would have been the security story of the week on its own. Here is what happened, in plain words, what it means for a business in Colorado, who else is exposed, and why the next day like this cannot be handled by people alone.

What happened, in plain words

1. PHP, the language behind most of the web, got two emergency fixes. PHP runs WordPress, WooCommerce, Magento and a large share of all websites. On October 21 the PHP project released fixes for two flaws (CVE-2026-109618 and CVE-2026-109619, both rated 9.2 out of 10) that "can allow unauthenticated remote code execution." In plain words: a stranger can send a crafted request to the site and run their own code on the server, no login needed. The project's own advice: "there are no complete mitigations, updating is the only safe choice." The most exposed setup is the classic Apache with mod_php, where the flaw fires before the website's own code even starts. PHP 8.1 and older get no fix from the project; some packagers backport it on their own. Source: php.net release notes, 21 Oct 2026.

The detail that should change how you think about old software: the flaws were reported by Wiz Research together with Calif and OpenAI, and the researchers used AI models to speed up both finding them and building working attacks. Security vendors report the affected code has shipped since PHP 5.4, released in 2012. Code that was "too hard to attack" for fourteen years stops being safe the moment the cost of building the attack drops. Sources: Google Cloud security blog, Sansec.

Who else is exposed: every self-hosted WordPress, WooCommerce, Magento and Shopware store, whatever the quality of its own code, and every agency, clinic, law office or nonprofit whose site was "set up once" by a contractor who has since moved on.

2. GitLab, where companies keep their source code, patched a perfect 10. GitLab shipped an out-of-cycle critical patch for CVE-2026-110264, rated the maximum 10.0, that "could have allowed an unauthenticated user to execute arbitrary code" on a self-managed GitLab server. The affected versions start at 7.0, from 2014: twelve years of releases. GitLab's own cloud service was already patched; everyone who runs GitLab on their own servers is told to upgrade "immediately." No workaround is listed. Source: GitLab critical patch release, 21 Oct 2026.

Who else is exposed: any company, university or government office that hosts its own GitLab, which is common precisely among organizations that keep source code in-house for security reasons.

3. LiteLLM, a popular AI plumbing tool, shipped a poisoned update. LiteLLM is a proxy that sits between applications and language models; many AI products and internal tools route their traffic through it. On October 21 its release pipeline was hijacked and version 1.107.0 went out on PyPI and Docker Hub carrying a credential stealer and a remote-access backdoor. The malicious files run every time Python starts on the machine, whether or not the program uses LiteLLM, and send cloud, browser, developer and AI-tool secrets to a look-alike domain. The window was short (the packages were uploaded at 11:39 UTC and pulled at 13:23), but the advice is blunt: if 1.107.0 ran anywhere with internet access, "assume the exfil succeeded" and rotate every credential it could reach.

The suspected cause matters more than the malware. In LiteLLM's own account, "Claude Code will embed a user's GitHub CLI OAuth token into a response body," and "in situations where response bodies are logged, these tokens may appear in LiteLLM logs." Someone who got into an internal LiteLLM server that was reachable from the internet pulled those tokens from its logs and used them against the release process, during a window when release permissions had been temporarily widened. It is the second compromise of this package in 2026. Source: LiteLLM security incident, 21 Oct 2026.

Who else is exposed: every team that installed that version, including build servers and Kubernetes nodes, where security firms saw the attackers test stolen Amazon cloud credentials. Downstream, anyone whose keys sat in those environments.

4. Railway, a hosting platform used by startups, told every customer to rotate every secret. Railway "detected anomalous activity involving systems that store customer environment variables." An unauthorized party may have accessed encrypted variables and, for some, "obtained the decrypted contents": API keys, database and registry passwords. Railway paused all deployments and asked customers to "immediately roll all environment variables, including any API keys." Source: Railway security disclosure, 21 Oct 2026.

Who else is exposed: the customers of those startups. A database password in someone else's leaked settings is a door into data that may be yours.

5. CrowdStrike showed that criminals already run their attacks through AI agents. CrowdStrike published research on four previously unknown groups, documented between May and August 2026, that hand operational decisions to AI agents. A Spanish- and English-speaking operator broke into at least 15 healthcare organizations in Argentina using a two-agent setup: a "Supervisor" Claude Code agent picks the next task from a checklist and an "Executor" agent does it, built on the open-source PentestGPT tool with extra plug-ins, exploit scripts and skills. A Chinese-speaking operator, working through a China-based proxy service, compromised government bodies in two countries and targeted private companies in Brazil and the United States across biotech, healthcare, food and beverage, retail, technology and travel. An Indonesian-speaking actor runs 819 publicly available skills with no orchestration at all, hit several Indonesian government domains and one abroad, and, the report notes, "periodically had to intervene to overcome the model's safety guardrails." A Russian-speaking group stole corporate client data from a U.S. CRM vendor and hit SaaS and data-center companies in Russia, Kyrgyzstan and the United States, launching the whole seven-step attack, exfiltration included, with a single slash command. Source: CrowdStrike, 21 Oct 2026.

Who else is exposed: this is not an Argentina story. Three of the four groups already have victims in the United States, and healthcare appears twice. Small organizations are attractive precisely because an agent makes the cost of one more target close to zero.

What it means

AI is now on both sides, and the attacking side scales first. The PHP attacks were built faster with AI; the Argentina intrusions were run by AI. One person with an agent setup now does what used to take a team, and can run it against hundreds of targets at once.

Old, trusted code has to be re-rated. PHP since 2012, GitLab since 2014. "It has run for twelve years" was a comfort; it is now a measure of how long the flaw has been waiting for a cheaper attacker.

An AI agent's output is a leak path. The LiteLLM chain did not start with a new flaw. It started with a token that an AI coding agent wrote into a response, which was logged, on a server that was reachable. If you use agents, the secrets they can see, say and log are part of your attack surface.

By the numbers, Colorado first

How much of the web is this about? As of today, W3Techs measures PHP on 69.3% of all websites whose server-side language can be identified, and only 65.3% of those PHP sites run version 8. The rest sit on branches the PHP project no longer fixes at all. WordPress alone is 39.6% of all websites and 58.3% of sites with a known content management system. Every WordPress, Drupal, Joomla and Magento site is a PHP site.

The large names people do not think of as PHP: Wikipedia runs on MediaWiki, written in PHP since 2002. Slack's chief architect wrote that "Slack uses PHP for most of its server-side application logic". Adobe Commerce (Magento) and most of the online stores built on it are PHP, which is why Sansec warned that Magento, Shopware and WooCommerce stores are exposed even when their own code is clean.

In Colorado specifically: the state portal Colorado.gov runs on Drupal, and the team behind it moved more than 300 state agency and partner sites from Drupal 7 to Drupal 8 on Acquia's cloud, according to Acquia's own case study (a vendor account, so read it as the vendor's). The University of Colorado Boulder builds its websites on Web Express, its Drupal 10 platform, hosted on Pantheon, with the last Drupal 7 sites migrated in late 2024. BuiltWith's public Colorado listing of WordPress sites includes The Denver Post and DISH; the state-level totals sit behind its paid tier, so we will not quote a number we cannot show. Whether any Colorado organization was actually hit through this week's flaws is not public anywhere we could find, and we will not guess. What is public is the exposure: the state's web presence, its flagship university, its biggest newspaper and a large share of its small-business sites all run on the platform that got the emergency fix.

What patching this actually takes

Whoever owns the servers, the checklist is the same, and none of it is a single command:

  • Inventory: which servers run PHP at all, which branch, and how it is served (PHP-FPM, Apache with mod_php, CGI).
  • Availability: whether the fixed build has reached the package repository for that operating system. Branches the project no longer supports get a fix only if a packager backports one, and operating systems past their support date may get nothing at all; those need a migration, not a patch.
  • Verification before applying: a vendor's package changelog should name the CVE before anyone trusts a version number.
  • A snapshot of the database and configuration before the change, a restart of the PHP workers or Apache after it, and a check of the site from outside: pages, login, error log.
  • The same loop for GitLab, for every machine that ever installed the poisoned LiteLLM release, and for every secret that lived on a Railway deployment.

Done carefully, that is hours of attention per server, and it only works because the vendors and packagers moved within hours. Multiply it by a fleet, and the pace stops being a people problem that more people can solve.

What to do this week

  • PHP: update to 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart the PHP workers or Apache. On 8.1 or older you need a vendor backport or a migration. PHP 8.2 itself reaches end of life on December 31, 2026.
  • GitLab on your own servers: upgrade to the patched release for your branch. There is no workaround.
  • LiteLLM: if 1.107.0 was ever installed, treat the machine as compromised: stop, hunt for the startup files, rotate every credential the machine could reach, rebuild.
  • Railway: rotate every environment variable, and check your database, registry and cloud logs for access you did not make.
  • AI agents, yours: give their tokens the least access possible, keep secrets out of prompts and outputs, redact logs, pin dependencies, make release tags immutable. LiteLLM lists exactly those changes as its own fixes.

The Colorado clock

If any of this turns into a breach of personal information, Colorado's notification law starts a clock. Under C.R.S. § 6-1-716, affected Colorado residents must be notified "in the most expedient time possible and without unreasonable delay," and no later than thirty days after the date it is determined that a breach occurred. If the breach is reasonably believed to affect 500 or more Colorado residents, the Attorney General must be notified within the same thirty days; above 1,000 residents, the consumer reporting agencies too. Sources: Colorado Attorney General, data protection FAQ, C.R.S. § 6-1-716. Thirty days is not long when the first week goes to finding out what happened.

Why we are putting agents into the defense

Look at the timeline again. Flaws found by AI, attacks run by AI, a poisoned package live for under two hours, four groups each running dozens of targets. No person, and no team of people on call, reads every advisory, maps it to every server, prepares every patch and test, and reacts inside that window. Agents do, and the other side already uses them.

So the practice has to change. Agents read the advisories, map them to the fleet, prepare the patches and the tests; a person reviews and signs off on every change. And the agents themselves get the least access we can give them, with their outputs treated as logs that may leak, because that is exactly how one of these five incidents began.

If you run PHP, GitLab, LiteLLM or Railway and nobody has told you yet, that is this week's problem. If you want a second pair of eyes on your servers, talk to us.

▸ BACK TO BLOG