Security Brief · Issue #6

Brotli reaches Node.js and Envoy; AI package stole keys

Compression flaw reaches proxies and runtimes; popular AI gateway version distributed a credential thief for three hours.

Issue #6: Brotli reaches Node.js and Envoy; AI package stole keys
By HIFY RadarOctober 26, 2026 · 3 min read
WhatsApp LinkedIn X

The 30-second summary

01 · Vulnerability · Critical

Brotli flaw spreads to Envoy, Istio.NET and Python

The Brotli flaw reached more products: beyond Node.js, the decoder memory corruption affects Bun.NET, Envoy, Istio and Python packages that decompress malicious data.

Why it matters: every service that decompresses content received from the internet, such as proxies and APIs, can have memory corrupted and fall under attacker control. The fix must reach runtimes, packages and container images.

For the technical team

Out-of-bounds write in the Brotli decoder, nicknamed Node2Shell/HTTP2Shell. A malicious compressed payload corrupts process memory, with risk of crash, disclosure and RCE. Exploitation condition: component decompressing untrusted Brotli, including HTTP request bodies.

CVE
CVE-2026-111497, CVE-2026-105482, CVE-2026-105483, CVE-2026-106069, CVE-2026-105481, CVE-2026-106072, CVE-2026-106074, CVE-2026-106070, CVE-2026-106071, CVE-2026-106073
Affected
Node.js 22.x before 22.23.4, 24.x before 24.22.1 and 26.x before 26.12.1 (EOL lines 20.x, 23.x and 25.x without fix); Bun before 1.4.4; Google Brotli 1.0.3 to 1.2.0; PyPI brotli and brotliscffi up to 1.2.0; Envoy 1.36 to 1.39 with Brotli decompressor configured; Istio before 1.29.9/1.30.6/1.31.2; .NET, Visual Studio and PowerShell before the October 25 updates
Exploitation
Public PoC
Fix
Node.js 22.23.4/24.22.1/26.12.1; Bun 1.4.4; Brotli 1.2.1/1.1.1/1.0.10; brotli 1.2.1 and brotliscffi 1.2.1.0; Envoy 1.40.0/1.39.3/1.38.6/1.37.8; Istio 1.29.9/1.30.6/1.31.2; .NET 8.0.33/9.0.22/10.0.14 and 11 RC3; WAF rules published in observation mode, no blocking by default

Sources: Microsoft, The Hacker News, @ethiack, @BleepinComputer, @DarkWebInformer

On the radarFollow this incident live →
02 · Vulnerability · High

PHP: confirmed exploitation report and Unit 42 withdraws assessment

The PHP picture changed this week: researcher hakluke reports confirmed exploitation of the flaw, and Unit 42 withdrew the assessment that linked an attack on a European government to PHP2Shell; it was an attack in the context of a vulnerable PHP application.

Why it matters: PHP runs about 70% of the world's websites. The new critical flaw CVE-2026-115560 has a published mitigation; the definitive fix comes in the next regular version.

For the technical team

CVE-2026-115560: critical RCE disclosed by PHP on October 23; the project team says exploitation requires an unusual combination of configuration and code. Official mitigation: session.upload_progress.enabled=0 until the next patch version. PHP2Shell exploitation attempts continue in volume, and Unit 42 (Palo Alto Networks) retracted the link between the European case and the flaw.

Affected
PHP installations in the specific configuration described; industrial vendors that embed PHP (Siemens, Schneider Electric, ABB and others) confirmed products affected by PHP2Shell
Exploitation
Public PoC; researcher reports confirmed exploitation, no details in the sources
Fix
mitigation session.upload_progress.enabled=0 until the next regular version; PHP 8.5.12/8.4.27/8.3.36/8.2.35 already cover PHP2Shell

Sources: @hakluke, The Hacker News, @LiveOverflow

On the radarFollow this incident live →
03 · Vulnerability · High

Microsoft reissues .NET fixes after incomplete patch

Microsoft reissued .NET updates because the October 13 ones did not fully fix two flaws, including one that allows code execution on the developer's machine during debugging.

Why it matters: updating only the shared .NET runtime leaves a gap open when projects reference affected NuGet packages directly. Teams need to review applications and images, or they believe they are patched and remain exposed.

For the technical team

CVE-2026-102870 (CVSS 8.8): RCE in the Blazor WebAssembly debugger; attacker-controlled data escapes a generated C# string when the developer evaluates an expression, with user interaction. CVE-2026-70197: memory corruption in SocketAsyncEventArgs. The out-of-band releases also cover CVE-2026-111497 (Brotli) and CVE-2026-114148 (Linux build tarball).

CVE
CVE-2026-102870, CVE-2026-70197, CVE-2026-111497, CVE-2026-114148
Affected
.NET 8, 9, 10 and 11 after the October 13 updates; projects that directly reference Microsoft.AspNetCore.Components.WebAssembly.Server and DevServer
Exploitation
not observed
Fix
out-of-band updates of October 25 for .NET 8, 9, 10 and 11 (e.g. 10.0.14) and updated Blazor NuGet packages

Takeaway: A patch applied without retesting leaves a false sense of being fixed.

Sources: @DarkWebInformer

On the radarFollow this incident live →
04 · Supply chain · Critical

Report details compromise of eMudhra CAs

The eMudhra incident report (digital certification authority from India) shows that private keys of eight intermediate authorities were recoverable from the public certificates. The certificates were revoked on October 18.

Why it matters: whoever has these keys issues certificates that unpatched systems accept as genuine and intercepts connections, including reading credentials. Java does not check revocation by default; Docker images with embedded Java require their own fix.

For the technical team

Private keys of eight eMudhra (emSign) TLS ECC intermediates demonstrated recoverable from the public certificates on October 17, 2026; revocation on October 18. Go, Electron, Node.js, Python (certifi, pip, uv), NSS, Java and Deno published removal of trust. No exploitation reported, according to Web3Signer and Teku. Tensorust counted 403 Indian government sites still serving revoked certificates.

CVE
CVE-2026-111943, CVE-2026-91403, CVE-2026-115557, CVE-2026-114820
Affected
clients that trust eMudhra ECC intermediates before the blocks of October 17 to 21; Go before 1.27.3/1.26.10; Electron before 44.9.1/43.8.1/42.11.16; certifi before 2026.10.19; pip before 26.2.2; uv before 0.13.4
Exploitation
not observed
Fix
Go 1.27.3/1.26.10; Electron 44.9.1/43.8.1/42.11.16; Node.js 22.23.4/24.22.1/26.12.1; Python 3.15.2/3.14.10/3.13.18/3.12.16/3.11.18; certifi 2026.10.19; NSS 3.131.1; OpenJDK updated; pip 26.2.2; uv 0.13.4; update ca-certificates and rebuild Docker images with embedded Java

Takeaway: Inherited system trust is only reviewed when someone tests what it accepts.

Sources: Besu, Tensorust, Consensys (Web3Signer), Python Software Foundation (Hugo van Kemenade), Keytos

On the radarFollow this incident live →
05 · Supply chain · Critical

LiteLLM 1.107.0 distributed a credential thief

Version 1.107.0 of LiteLLM shipped infected: the publishing pipeline was taken over with stolen GitHub tokens, and the package installed a credential thief. It stayed up for about three hours, with more than 49 thousand downloads.

Why it matters: LiteLLM routes calls to more than 100 AI providers and runs on development machines, CI and production with cloud keys. Wiz saw stolen credentials in use 4.5 hours later, including queries to Amazon Bedrock.

For the technical team

litellm 1.107.0, published on October 21 on PyPI and in the official Docker/GHCR images (tags v1.107.0, latest, main-latest, main-stable), installed an info-stealer after the release pipeline was hijacked with a leaked master key and stolen GitHub tokens. It stole browser passwords, AWS/GCP/Azure keys, SSH, GPG, environment variables and AI API keys, with exfiltration to litellm[.]dev. Active for about 3 hours; Wiz reported credentials in use about 4.5 hours later.

Affected
litellm==1.107.0; Docker/GHCR images v1.107.0, latest, main-latest and main-stable in the October 21, 2026 window
Exploitation
confirmed active
Fix
pin litellm 1.106.2 (last known safe version); 1.107.0 removed from PyPI, Docker Hub and GHCR; rotate all reachable credentials, block litellm.dev and scan the machine

Takeaway: A key exposed in May compromised the pipeline in October; an old credential without rotation remains useful to attackers.

Sources: OSV, The Record, The Hacker News, BleepingComputer

On the radarFollow this incident live →
06 · Vulnerability · Critical

CISA confirms Collabora exploitation and adds flaw to KEV

CISA added the flaw to the KEV (the US cybersecurity agency's list of flaws already used in attacks): Collabora exploitation on Nextcloud servers is confirmed, with backdoors since September.

Why it matters: the flaw allows executing commands without login on the server. Reports show searches for password vaults and cryptocurrency wallets; companies with Nextcloud may have server secrets compromised.

For the technical team

CVE-2026-110447 (CVSS 9.2): unauthenticated command execution, as the web server user, in the richdocumentscode app (Collabora Online Built-in CODE Server). Exploited since September 10, 2026 with webshells; reports cite searches for .kdbx files, wallet.dat, bitwarden and 1Password. Added to CISA's KEV; disabling the app is insufficient.

CVE
CVE-2026-110447
Affected
richdocumentscode before 26.4.303 on Nextcloud servers
Exploitation
confirmed active
Fix
update to 26.4.303 or later (most recent 26.4.502) or uninstall the app; hunt for shx*.php files and review access logs

Sources: NVD, The Hacker News, Collabora, Nextcloud community forum

On the radarFollow this incident live →
07 · Vulnerability · High

Linux kernel VM escape validated in Vercel challenge

A flaw in the Linux kernel networking allows a guest virtual machine to escape isolation, read physical server memory or take it over completely. The technique was validated in Vercel's $1 million challenge.

Why it matters: cloud providers isolate customers in this same layer. Those running their own virtualization hosts need to update the host kernel; according to Vercel, no challenge submission accessed customer data.

For the technical team

CVE-2026-99999 (PwnEscape): flaw on the host side of the Linux kernel network stack. Packets forged by the guest allow continuous host memory reads, DoS of the sandboxes or execution with root privileges. Discovered by Paulos Yibelo (pwn.ai), validated in Vercel's KVM/Firecracker sandbox challenge.

CVE
CVE-2026-99999
Affected
host kernels older than the stable backports 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.57 and 7.2.11 (check distributor packages)
Exploitation
Public PoC
Fix
upstream commit 6785011f8b16 and corresponding stable backports; update the kernel of virtualization hosts

Sources: pwn.ai, Vercel

On the radarFollow this incident live →
08 · Vulnerability · Critical

Keycloak fixes unauthenticated account takeover

Keycloak fixed an account takeover flaw: an attacker without a password forces the credential reset of any user and bypasses email verification. Red Hat rates the risk as critical, with a score of 9.1.

Why it matters: the attacker acts over the network, without credentials and without any action from the victim, and takes over accounts including administrative ones. Every login protected by an affected version is exposed, and there is a public proof of concept.

For the technical team

CVE-2026-18963 (CVSS 9.1): bypass in the keycloak-services reset-credentials flow allows resetting a password without authentication and without user interaction. Public PoC on Exploit-DB (EDB-52699). Temporary mitigation: disable password recovery in all realms.

CVE
CVE-2026-18963
Affected
org.keycloak:keycloak-services 26.0.0 to 26.4.14; 26.5.0 to 26.6.5; 26.7.0 to 26.7.1 (includes Red Hat Build of Keycloak)
Exploitation
Public PoC
Fix
26.4.15, 26.6.6, 26.7.2, 26.8.0 or later; mitigation: Realm settings, Login, Forgot password disabled

Takeaway: The password recovery flow is an attack surface almost nobody tests.

Sources: GitHub Advisory Database, NVD, Red Hat, Exploit-DB

On the radarFollow this incident live →
09 · Vulnerability · Critical

Bricksforge: unauthenticated RCE exploited since October 7

The Bricksforge plugin is under active exploitation: the flaw allows executing code on the site without login since October 7, according to Patchstack. About 6 thousand sites use the plugin.

Why it matters: the vendor says every site with the Pro Forms feature active is affected, even without upload fields. Exploitation gives full control of the site; updating does not remove files already planted.

For the technical team

CVE-2026-85097 (CVSS 10.0): unauthenticated RCE in the WordPress plugin Bricksforge via Pro Forms, exploited in the wild since October 7, 2026 according to Patchstack. Review upload directories for unexpected PHP files and access logs; a WAF rule blocking form submission with an image path and PHP destination serves as temporary mitigation.

CVE
CVE-2026-85097
Affected
Bricksforge <= 3.1.8.9 (WordPress)
Exploitation
confirmed active
Fix
3.1.8.10 or higher (current line 4.0.x, most recent 4.0.1)

Takeaway: An active form plugin is enough to expose the site; an app inventory is basic defense.

Sources: SecurityWeek, The Hacker News, SOCRadar, Bricksforge

On the radarFollow this incident live →
10 · Ransomware · Medium

The Gentlemen claims attack on SAP Latin America

The Gentlemen ransomware group claimed an attack on SAP Latin America and Caribbean, the regional arm that operates in about 10 countries, with Brazil as the largest market. The claim appeared on the leak site on October 26.

Why it matters: the group did not report volume or type of data, and SAP has not confirmed an incident. If the claim holds, customers and integrators in the region should expect themed phishing and fake support invoices.

For the technical team

Listing on The Gentlemen group's leak site on October 26, 2026 (UTC) describing the victim as SAP Latin America and Caribbean, with no details on volume or type of data. Unverified claim; SAP has not publicly confirmed an incident. A separate actor, in a separate and unrelated listing, claimed a 31 GB leak linked to SAP operations in Ecuador.

Affected
not reported in the sources
Exploitation
not reported in the sources
Fix
not reported in the sources

Sources: @DailyDarkWeb

On the radarFollow this incident live →

Wrapping up

The pattern of the day is shared dependency: a compression flaw hit Node.js, proxies.NET and Python, and a compromised certification authority forced updates in Go, Java, Python and other runtimes. In two cases the first fix failed and had to be redone. Knowing where each component appears, and checking afterwards that the flaw is gone, became part of the work of patching.

How many shared components in your stack are still unpatched?

Most of these flaws only show up when someone tests the same path as the attacker.

Talk to us