Cyber Threat Brief — October 22 2026

⚠️ This report is AI-generated. Always validate findings.

1. LiteLLM-1.107.0-2026-10 — malicious 1.107.0 release

TL;DR: PyPI litellm==1.107.0 and four Docker tags were malicious for about two hours on 21 October. Pin 1.106.2. Treat any environment that started Python on that build as compromised, then rotate the secrets it could read.

What’s New:

  • LiteLLM’s incident report says all seven litellm==1.107.0 wheels were on PyPI from 11:39:51 to 13:23 UTC on 21 October. Docker Hub tags v1.107.0, latest, main-latest, and main-stable pointed at image index sha256:1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339e from 11:46:56 to 14:20 UTC. The same four tags on GHCR (litellm, litellm-database, litellm-non_root) were compromised from 11:46:56 UTC and unavailable by 13:51 UTC. The official GitHub source tag does not contain the malicious files.
  • The wheels drop cook.pth, cook.py, and sitecustomize.py into site-packages. Python runs them on every start, including pip. Datadog says cook.py posts stolen secrets to www.litellm.dev/healthcheck with header X-Token: XWiA8gZNa7NcX2XRoAEb, and sitecustomize.py checks raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txt hourly. Datadog says that file only ever held test values.
  • LiteLLM says customers on the private enterprise registry were not affected. A missing marker file does not clear a host. If 1.107.0 was installed on a machine with outbound internet, assume the steal ran.
  • The build used lookalike source Berri-AI/litellm (hyphen) instead of BerriAI/litellm. JFrog says this payload and infrastructure differ from the earlier TeamPCP incident. There is no CVE. This is a package compromise, not exploitation of a vulnerability.

Actionable Intel

ArtifactTypeATT&CKLog SourceAction
litellm==1.107.0Malicious PyPI releaseT1195.002pip show litellm / package inventory / image SBOMRemove litellm==1.107.0 anywhere it is installed. Do not run pip or any other Python in that environment until cook.pth, cook.py, and sitecustomize.py are gone.
litellm==1.106.2Safe pinT1195.002Package inventory / lockfilePin LiteLLM to litellm==1.106.2, or to another explicit release published before 21 October 11:39 UTC. Do not float latest.
SHA-256 1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339eCompromised image indexT1195.002Container runtime / registry auditTreat any container that started image index sha256:1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339e as compromised. Rebuild from litellm==1.106.2.
Docker Hub LiteLLM tag v1.107.0Compromised tagT1195.002Registry pull logsFind pulls of v1.107.0 between 11:46 and 14:20 UTC on 21 October. Those pulls are in the malicious window.
Docker Hub LiteLLM tag latestCompromised tagT1195.002Registry pull logsFind pulls of LiteLLM latest between 11:46 and 14:20 UTC on 21 October. That tag pointed at the malicious index during the window.
Docker Hub LiteLLM tag main-latestCompromised tagT1195.002Registry pull logsFind pulls of main-latest between 11:46 and 14:20 UTC on 21 October. That tag pointed at the malicious index during the window.
Docker Hub LiteLLM tag main-stableCompromised tagT1195.002Registry pull logsFind pulls of main-stable between 11:46 and 14:20 UTC on 21 October. That tag pointed at the malicious index during the window.
ghcr.io/berriai/litellmCompromised GHCR imageT1195.002GHCR pull logs / container runtimeFind pulls of ghcr.io/berriai/litellm tags v1.107.0, latest, main-latest, or main-stable from 11:46:56 UTC until 13:51 UTC on 21 October. That image pointed at index sha256:1bbcb1443bc9…, the same index as Docker Hub.
ghcr.io/berriai/litellm-databaseCompromised GHCR imageT1195.002GHCR pull logs / container runtimeFind pulls of ghcr.io/berriai/litellm-database tags v1.107.0, latest, main-latest, or main-stable from 11:46:56 UTC until 13:51 UTC on 21 October. LiteLLM gives only the index prefix sha256:c00f9d92c427, so use it as a lead and confirm the full digest before you act on it.
ghcr.io/berriai/litellm-non_rootCompromised GHCR imageT1195.002GHCR pull logs / container runtimeFind pulls of ghcr.io/berriai/litellm-non_root tags v1.107.0, latest, main-latest, or main-stable from 11:46:56 UTC until 13:51 UTC on 21 October. LiteLLM gives only the index prefix sha256:7b00e91cd2fe, so use it as a lead and confirm the full digest before you act on it.
cook.pthPython startup hookT1546.018File integrity / EDR file createDelete cook.pth from every site-packages directory, plus __pycache__/cook*.pyc. Finding it confirms exposure. Not finding it does not clear the host.
cook.pyCredential stealerT1041File integrity / EDR file createDelete cook.py and its bytecode from site-packages. It collects credentials and posts them to www.litellm.dev.
sitecustomize.py in site-packagesHourly remote loaderT1546.018File integrity / EDR file createDelete sitecustomize.py that arrived with litellm==1.107.0. A sitecustomize.py you placed yourself is a separate file. Compare contents before you delete a copy you expect to own.
www.litellm.devExfil domainT1071.001DNS / proxyBlock www.litellm.dev and search for HTTP requests to www.litellm.dev/healthcheck. The legitimate project is not that domain.
X-Token: XWiA8gZNa7NcX2XRoAEbExfil headerT1041Proxy / Zeek HTTPAlert on outbound requests that send header X-Token with value XWiA8gZNa7NcX2XRoAEb.
raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txtDead-drop URLT1102ProxySearch for requests to raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txt. Datadog says the repository is removed and only held test values.
/tmp/.pc_once_72129118c59f5636c0bbExfil markerN/AFile integrity / container filesystemIf /tmp/.pc_once_72129118c59f5636c0bb exists, the exfil step ran. If it is absent, that proves nothing.
/tmp/remote_code_loader.lockLoader lockT1546.018File integrity / process listFind the process holding /tmp/remote_code_loader.lock and kill it before you reinstall. LiteLLM says that process is the detached Python loader.
SHA-256 7598727f209d717041db37f7dca271d3a7d328a279890e0e1d55375729aeb86dMalicious wheel digestT1195.002Package download logs / JFrog XrayBlock and search for 7598727f209d717041db37f7dca271d3a7d328a279890e0e1d55375729aeb86d. Datadog lists it among the seven litellm==1.107.0 wheel digests.
SHA-256 0aaf7ba346d41ef2f40390436738b001180d5a1c03aa093f121078a9969d9a1aMalicious wheel digestT1195.002Package download logsBlock and search for 0aaf7ba346d41ef2f40390436738b001180d5a1c03aa093f121078a9969d9a1a. Datadog lists it among the seven wheel digests.
SHA-256 462d0c9f67ca522d9e0e4acd245e90b36ce0d5353604a66bb7c43a1ec4a6fcf7Malicious wheel digestT1195.002Package download logsBlock and search for 462d0c9f67ca522d9e0e4acd245e90b36ce0d5353604a66bb7c43a1ec4a6fcf7. Datadog lists it among the seven wheel digests.
SHA-256 668169d35b87bf51324080390b1b1c5ab12bd335cfe5f1a99e3689abd5e02ae6Malicious wheel digestT1195.002Package download logsBlock and search for 668169d35b87bf51324080390b1b1c5ab12bd335cfe5f1a99e3689abd5e02ae6. Datadog lists it among the seven wheel digests.
SHA-256 1bbce8caa94f01c0aaa0b7ddae51553a8a32e1ce53d96d44fe583272aff7ad00Malicious wheel digestT1195.002Package download logsBlock and search for 1bbce8caa94f01c0aaa0b7ddae51553a8a32e1ce53d96d44fe583272aff7ad00. Datadog lists it among the seven wheel digests. Do not confuse it with the image index, which starts 1bbcb144.
SHA-256 c2e32d0ce2548aa662c18bf5001911a79fe5b30cf8357132275add02fdcde054Malicious wheel digestT1195.002Package download logsBlock and search for c2e32d0ce2548aa662c18bf5001911a79fe5b30cf8357132275add02fdcde054. Datadog lists it among the seven wheel digests.
SHA-256 12d4ccc5c6f8d35cf4f2cf233b7f3e418e863e657d81ff5f5fc9e210005b9484Malicious wheel digestT1195.002Package download logsBlock and search for 12d4ccc5c6f8d35cf4f2cf233b7f3e418e863e657d81ff5f5fc9e210005b9484. Datadog lists it among the seven wheel digests.

Detection

SourceRuleGap
Splunk ESCUPartial — Python PTH File Creation During Package InstallationWindows Sysmon. Needs python.exe plus a created *.pth during an install command. Linux hosts, Docker layers that already contain cook.pth, and a later Python start with no new file event all miss. Python Site Hooks Creation During Package Installation is the same Windows shape for sitecustomize.py under a *-packages\ path.
ElasticPartial — Python Path File (pth) CreationLinux file-create of .pth under site-packages or dist-packages. A container that starts with the file already in the image does not create it. Python Site or User Customize File Creation does not list site-packages/sitecustomize.py. It looks at dist-packages/sitecustomize.py and a few other paths.
SigmaPartial — Python Initiated ConnectionWindows only. Any python.exe network connection. It does not name www.litellm.dev. Linux and container traffic miss. No Sigma rule in this index creates .pth files.

Detection index: ESCU 678e76c (2026-10-21) · elastic detection-rules 9431b80 (2026-10-21) · SigmaHQ 05d1031 (2026-10-21).

Hunt hint: Search image and package inventories for litellm version 1.107.0 and for image index sha256:1bbcb1443bc962e45f5aad53fe3d2c30600e0379715fb6c664cdd3ac126c339e. On a hit, do not start Python. From a shell, delete cook.pth, cook.py, and the package’s sitecustomize.py, kill whatever holds /tmp/remote_code_loader.lock, and rebuild the venv or image pinned to 1.106.2. Then rotate cloud keys, source-control tokens, and LLM provider keys that were on that host. Proxy logs for www.litellm.dev and the letters9813 raw URL tell you the steal or the loader ran. A clean marker file does not.

Sources: LiteLLM incident · Datadog · JFrog · Wiz


2. CVE-2026-110264 — GitLab regex-compiler RCE

TL;DR: CVE-2026-110264 is an unauthenticated remote code execution in self-managed GitLab, CVSS 10.0. Upgrade to the fixed build for your branch. Exploitation is not confirmed, and the CVE is not in KEV. Builds that fixed CVE-2026-97229 are still vulnerable.

What’s New:

  • GitLab’s 21 October patch release fixes an integer overflow in the regular-expression compiler. An unauthenticated user can run code by making GitLab render a crafted Org-mode file. Fixed builds: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, and 18.11.13. Versions from 7.0 before 18.11.13 have no patch on the old branch. Upgrade them.
  • GitLab.com is already patched. GitLab Dedicated tenants on 19.3.5-internal0 or 19.4.2-internal0 (or later) already include this fix. Self-managed 19.4.2, 19.3.5, and 19.2.8 do not. Those three builds fixed CVE-2026-97229 and still need this release. CVE-2026-110264 is a separate Org-mode bug, not a bypass of CVE-2026-97229.
  • CERT-EU advisory 2026-019 restates the GitLab advisory and points at GitLab’s two detection rules. No exploitation has been confirmed. The CVE is not in CISA KEV.
  • The same release also fixes other issues, including CVE-2026-105777 (internal credential exposure, CVSS 4.3). Patch for CVE-2026-110264 and you pick those up on the current branches.

Actionable Intel

ArtifactTypeATT&CKLog SourceAction
CVE-2026-110264Unauthenticated RCET1190GitLab version inventoryUpgrade every self-managed GitLab CE/EE instance. GitLab.com needs no action. Dedicated tenants on 19.3.5-internal0 or 19.4.2-internal0 or later need no action.
GitLab 19.5.1Fixed buildT1190Package / Omnibus versionOn the 19.5 branch, install 19.5.1 or later. 19.5.0 is vulnerable.
GitLab 19.4.3Fixed buildT1190Package / Omnibus versionOn the 19.4 branch, install 19.4.3 or later. 19.4.2 fixed CVE-2026-97229 and is still vulnerable to CVE-2026-110264.
GitLab 19.3.6Fixed buildT1190Package / Omnibus versionOn the 19.3 branch, install 19.3.6 or later. 19.3.5 fixed CVE-2026-97229 and is still vulnerable to CVE-2026-110264.
GitLab 19.2.9Fixed buildT1190Package / Omnibus versionOn the 19.2 branch, install 19.2.9 or later. 19.2.8 fixed CVE-2026-97229 and is still vulnerable to CVE-2026-110264.
GitLab 19.1.9Fixed buildT1190Package / Omnibus versionOn the 19.1 branch, install 19.1.9 or later. There is no 19.1 build that fixes CVE-2026-110264 below 19.1.9.
GitLab 19.0.10Fixed buildT1190Package / Omnibus versionOn the 19.0 branch, install 19.0.10 or later.
GitLab 18.11.13Fixed buildT1190Package / Omnibus versionOn the 18.11 branch, install 18.11.13 or later. This is the oldest fixed release.
GitLab 18.10 and olderNo fix on that branchT1190Package / Omnibus versionGitLab 7.0 through 18.10 has no fixed package. Upgrade to 18.11.13 or to a later fixed release (19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3, or 19.5.1).
exceptions_json.log Timeout::Error + OtherMarkup + .orgRender-timeout burstT1190/var/log/gitlab/gitlab-rails/exceptions_json.logAlert when one meta.client_id causes five or more Timeout::Error events with extra.class_name OtherMarkup and extra.file_name ending in .org within 30 minutes. GitLab’s rule name is GitLab Org-mode render timeout burst.
puma_stderr.log [BUG] with org-ruby or onig_search_gposWorker crashT1190/var/log/gitlab/puma/puma_stderr.logAlert when a [BUG] report also contains org-ruby, headline.rb, or onig_search_gpos. A quiet success does not crash. Absence of this line does not clear the host.
Parent process puma or sidekiq spawning a shellChild processT1059Linux EDR / auditdAlert when a puma or sidekiq process on a GitLab host spawns sh, bash, curl, or wget. The Org-mode path runs as the git user.

Detection

SourceRuleGap
GitLab (vendor)Present — GitLab Org-mode render timeout burstFive or more Timeout::Error / OtherMarkup / .org events from one client in 30 minutes in exceptions_json.log. A single timeout is not the rule. The request that crashes the worker is a Workhorse 502 and is missing from Rails logs.
GitLab (vendor)Present — GitLab org-ruby or Onigmo native worker crash (CVE-2026-110264 / CVE-2026-93577 / CVE-2026-97229)[BUG] plus an org-ruby or Onigmo frame in puma_stderr.log. A successful Org-mode exploit can be quiet.
Splunk ESCUNone — verifiedWeb or Application Server Spawning a Shell parents are httpd, apache2, nginx, java, node, and a few others. puma, sidekiq, and ruby are not in that list. No rule names exceptions_json.log or Org-mode.
ElasticPartial — Suspicious Command Execution via Web ServerLinux. A parent whose name matches ruby* and whose command line contains puma, rails, or passenger, spawning bash or sh with -c and a suspicious argument, matches. A system() call that is not a shell -c misses. sidekiq is not a parent in this rule.
SigmaNone — verifiedNo rule in this index names GitLab puma, exceptions_json.log, or Org-mode render timeouts. Web-server child rules are Windows w3wp.exe and httpd.exe.

Hunt hint: Read the GitLab version before you hunt. If it is below the fixed build for that branch, upgrade first. Then count Timeout::Error lines in exceptions_json.log that also contain OtherMarkup and a .org file name, grouped by meta.client_id. Five or more in 30 minutes is GitLab’s burst. Check puma_stderr.log for [BUG] next to org-ruby. Preserve those logs before you patch. Do not render a crafted .org file to test the bug.

Sources: GitLab 19.5.1 release · Org mode render error burst · Onigmo native worker crash · CERT-EU 2026-019


3. ConnectWise-CloudBackup-SkyKick-2026-10 — Storm-0940 and ARTEX

TL;DR: Microsoft attributes the ConnectWise Cloud Backup compromise to China-state-aligned Storm-0940, using the agentic framework ARTEX. Keep the ConnectWise apps disabled. Hunt service-principal sign-ins and Global Administrator grants from 15 October, and the password spray from 10 October.

What’s New:

  • Microsoft’s 21 October post says Storm-0940 used ARTEX after the ConnectWise access. The actor attempted sign-ins to more than 2,250 tenants at 2,900 attempts per minute. @MsftSecIntel posted the same attribution.
  • The password spray is a separate wave. From 10–14 October, 144.172.64.99 sprayed 327 accounts across eight organizations. Microsoft counted 151,000+ failed logons, peaking on 11 October at 2,900 failures per minute. Microsoft saw no successful authentication, token, Graph call, or directory change from that spray.
  • Microsoft’s hunt query names three application IDs: Cloud Backup 506e08f9-6e9a-4da4-942b-a099a03644ae, Teams 24205314-2b89-4e07-a2a4-579e898a5640, and Graph 0de14c77-b9b0-4137-9360-34878a929827. Defender alerts to turn on are “Unusual Microsoft Graph activity associated with Compromised ConnectWise Application” and “Application self-assigned Global Administrator role”.
  • Microsoft’s IP table groups 144.172.64.128, 144.172.64.99, and 144.172.64.60 as sign-in and Graph activity. Huntress on 19 October tied application sign-ins only to .128 and called .99 and .60 failed logons. Search all three. VPN addresses 187.15.88.186, 187.15.90.217, and 187.15.89.186 matter for 15–16 October only.

Actionable Intel

ArtifactTypeATT&CKLog SourceAction
App ID 506e08f9-6e9a-4da4-942b-a099a03644aeConnectWise Cloud BackupT1078.004Entra sign-in logs / OAuthAppInfoKeep app 506e08f9-6e9a-4da4-942b-a099a03644ae disabled. Review service-principal sign-ins and Graph calls from 13 October onward. Microsoft’s 21 October hunt query includes this ID.
App ID 24205314-2b89-4e07-a2a4-579e898a5640ConnectWise MS TeamsT1078.004Entra sign-in logsKeep app 24205314-2b89-4e07-a2a4-579e898a5640 disabled. It is the second ID in Microsoft’s 21 October hunt query.
App ID 0de14c77-b9b0-4137-9360-34878a929827ConnectWise MS GraphT1078.004Entra sign-in logsKeep app 0de14c77-b9b0-4137-9360-34878a929827 disabled. It is the third ID in Microsoft’s 21 October hunt query.
App ID b78f6a77-d4e5-46fb-87e5-d1648bd02519Cloud Management ExchangeT1078.004Entra sign-in logsKeep app b78f6a77-d4e5-46fb-87e5-d1648bd02519 disabled. ConnectWise disabled it on 17 October. It is not in the new three-ID query. Still review it.
App ID b2b55f5b-7758-4719-8d8f-88ae172e6bdbCloud Management SharePointT1078.004Entra sign-in logsKeep app b2b55f5b-7758-4719-8d8f-88ae172e6bdb disabled. It is not in the new three-ID query. Still review it.
App ID 412dcf96-176d-4b3a-a1b0-4981ad66971eCloud Management Partner CenterT1078.004Entra sign-in logsKeep app 412dcf96-176d-4b3a-a1b0-4981ad66971e disabled. It is not in the new three-ID query. Still review it.
App ID 2399d300-6fca-4e6a-a686-399fefe75b83Cloud Management generalT1078.004Entra sign-in logsKeep app 2399d300-6fca-4e6a-a686-399fefe75b83 disabled. It is not in the new three-ID query. Still review it.
IP 144.172.64.99Password-spray sourceT1110.003Entra sign-in logsSearch sign-ins from 144.172.64.99 between 10 and 14 October. Microsoft says that spray had no successful authentication. The same IP is also in the sign-in and Graph table, which conflicts with Huntress. Investigate both readings.
IP 144.172.64.128App sign-in and GraphT1078.004Entra sign-in logs / Graph activityAlert on service-principal sign-ins and Graph calls from 144.172.64.128 for the ConnectWise app IDs. Huntress and Microsoft both tie application activity to this address.
IP 144.172.64.60Sign-in table entryT1078.004Entra sign-in logsSearch 144.172.64.60. Microsoft lists it with .128 and .99 for sign-ins and Graph. Huntress previously saw failed logons only.
IP 187.15.88.186VPN Graph sourceT1078.004Entra sign-in logsSearch Graph calls from 187.15.88.186 on 15 and 16 October only. Microsoft says the VPN address is transient.
IP 187.15.90.217VPN Graph sourceT1078.004Entra sign-in logsSearch Graph calls from 187.15.90.217 on 15 and 16 October only.
IP 187.15.89.186VPN Graph sourceT1078.004Entra sign-in logsSearch Graph calls from 187.15.89.186 on 15 and 16 October only.
User-Agent Python-urllib/3.12App sign-in agentT1078.004Entra sign-in logsAlert when a ConnectWise service principal signs in with user agent Python-urllib/3.12.
User-Agent python-requests/2.31.0App sign-in agentT1078.004Entra sign-in logsAlert when a ConnectWise service principal signs in with user agent python-requests/2.31.0.
User-Agent python-requests/2.34.2App sign-in agentT1078.004Entra sign-in logsAlert when a ConnectWise service principal signs in with user agent python-requests/2.34.2. This string is new in the 21 October table.
User-Agent curl/7.88.1Spray and app agentT1110.003Entra sign-in logsSearch user agent curl/7.88.1 on the ConnectWise apps and on the October spray.
User-Agent azure-toolkit/1.0App sign-in agentT1078.004Entra sign-in logsAlert when a ConnectWise service principal signs in with user agent azure-toolkit/1.0.
Operation Add member to role and role Global AdministratorRole grantT1098.003Entra audit logsAlert when app 24205314-2b89-4e07-a2a4-579e898a5640 or another ConnectWise app is the actor for Add member to role and the new role is Global Administrator. Remove the grant and the secrets planted in the same window.

Detection

SourceRuleGap
Splunk ESCUPartial — O365 High Privilege Role GrantedOffice 365 management activity, operation Add member to role., and the Global Administrator, Exchange Administrator, or SharePoint Administrator role template. It does not name the ConnectWise app IDs. The password spray from 144.172.64.99 does not match. Credential adds are O365 Service Principal New Client Credentials (Update application Certificates and secrets management).
ElasticPartial — Entra ID Service Principal Credentials Created by Unusual UserAzure audit operation Add service principal credentials with outcome success, as a new-terms rule on the app display name and the initiating user. A Global Administrator grant with no new secret misses. The spray IP misses.
SigmaPartial — Added Credentials to Existing ApplicationAzure audit message Update application - Certificates and secrets management or Update Service principal/Update Application. Role assignment and the spray IP miss.
Microsoft DefenderPresent — Application self-assigned Global Administrator roleVendor alert named in the 21 October blog, plus “Unusual Microsoft Graph activity associated with Compromised ConnectWise Application”. These are not in the ESCU, Elastic, or Sigma indexes.

Hunt hint: In Defender or Entra, list service principals for the seven app IDs above and confirm each one is disabled. Then search sign-in logs from 13 October for those app IDs, the six IP addresses, and the five user agents. Separately, search audit logs for Add member to role where the role name is Global Administrator and the actor is one of those apps. The spray from 144.172.64.99 on 10–14 October had no success in Microsoft’s telemetry. Treat a successful app sign-in from .128 as the incident, and reconcile .99 and .60 against both Microsoft and Huntress before you close them as noise.

Sources: Microsoft Security Blog · MsftSecIntel · MsftSecIntel follow-up · Huntress · Original brief


Status Updates

  • PHP2Shell-CVE-2026-109618 / CVE-2026-109619 (PHP): Fixed builds 8.5.12, 8.4.27, 8.3.36, and 8.2.35 shipped on 21 October. PHP 8.1 and older are end of life and get no fix. Exploitation attempts now have two independent origins: Amazon MadPot saw a pre-disclosure attempt on 17 October from 103.216.220.92, and Cloudflare sees attack traffic against its customers. No one has confirmed a successful compromise: Huntress sees no exploitation on partner systems, and Defused Cyber says the public PoCs it tested mostly fail. Talos Snort SIDs 67359 and 67360 are in the Community Ruleset (Talos). Not in KEV. Amazon’s 21 October source IPs (31.223.184.166, 37.19.200.5, 134.209.159.64, 103.114.163.188, 95.217.98.37) and Vega’s 64.95.12.7 are investigation leads, not a block list. Original brief.
  • CVE-2026-97229 (GitLab): Self-managed 19.2.8, 19.3.5, and 19.4.2 fixed this CVE and are still vulnerable to CVE-2026-110264. Move to 19.2.9, 19.3.6, or 19.4.3, or to the fixed build for your branch in section 2. No new exploitation report for CVE-2026-97229. Original brief.
  • CVE-2026-105192 (LMCache): GHSA-w5f2-9q9c-ff4h now lists the fix as 0.5.6. Affected releases are 0.3.9 through 0.5.5. The unauthenticated ZeroMQ pickle listener defaults to TCP 5555. Not in KEV. No exploitation report. Last mentioned.
  • Plex2Shell-CVE-2026-96652: CVE-2026-96654 and CVE-2026-96656 are due 2026-10-23. CVE-2026-96652 and CVE-2026-96655 are due 2026-11-03. Fixed build remains 1.43.3.10861. Original brief.
  • SiteGuard-CVE-2026-106931: KEV added 2026-10-20, due 2026-10-23, not yet a full section. OS command injection when statistics are enabled (the default) on SiteGuard Server Edition. Fixed in Ver8.00 Update5 (Apache, Nginx, IIS) and Ver7.00 Update6 (FreeBSD). Download diagnostic information before you patch. KEV catalog · EG Secure.
  • Siemens-Software-Center-CVE-2026-110936: KEV due 2026-11-03. No new build or IOC today. Fixed build remains 4.0.9.8. Original brief.
  • CVE-2026-102764 (BeyondTrust Remote Support): KEV due 2026-10-19 remains overdue. No new fixed build or IOC today. Original brief.
  • CVE-2025-61624 (FortiOS auto-script path traversal): KEV due 2026-10-19 remains overdue. No new IOC today. Original brief.
  • CVE-2026-21589 (Atlassian Data Center): KEV due 2026-10-18 remains overdue. Original brief.
  • KEV deadlines already passed, no new fix or IOC: CVE-2026-0322 (PAN-OS) and CVE-2026-76519 (Cisco Secure Email Gateway) (brief); CVE-2026-105134 (AhsayCBS) (brief); CVE-2026-104935 (Ivanti) and CVE-2026-96951 (Windows Shell) (brief).
  • Retired from watch (last update 2026-10-08): FortiBleed-2026-10, tensorlake-npm-0.5.144. No KEV due date and no new fix, IOC set, or exploitation report in 14 days. Today’s FortiWeb and PAN-OS initial-access relays are not this FortiBleed advisory. Last mentioned.
  • Watching (no change): CVE-2026-102255 (10-15); CVE-2026-85097 (10-09); CVE-2026-107406 (10-09); GhostAction-2026-10 (10-10); CVE-2026-0257 (10-11); CVE-2026-82077 (10-11); CyberXero-2026-10 (10-12); Danfoss-AKSM-FROMAGEGATE-2026-10 (10-13); CVE-2026-110447 (10-15); UNC7017-AOMEI-2026-10 (10-17); Candiru-AdFection-DiscoverTech-2026-10 (10-18); InfinityCore-2026-10 (10-18); UpdraftCentral-2026-10 (10-19); OVHcloud-CLI-2026-10 (10-20); RankMath-SEO-Pro-3.0.123 (10-20).