Black October Vulnerabilities: Node.js, Nginx, and Server-Side Exploits Analyzed

A detailed review of 15 critical and high-severity vulnerabilities disclosed in October reveals that only a handful actually affected a production server running Astro, Strapi, Nginx, and Ubuntu 24.04. Node.js remained unpatched for four days, exposing a Brotli decompression flaw that could lead to remote code execution. Nginx packages lagged behind security updates despite unattended-upgrades being enabled, though configuration checks showed most CVEs did not apply. PHP and GitLab issues were irrelevant due to their absence from the stack. The author also migrated away from inline scripts and third-party dependencies to reduce attack surface. Commands for verifying package changelogs, detecting deleted binaries in memory, and confirming librsvg fixes in sharp are provided throughout the analysis.

HabrTranslated from Russian

Read at source

A production server running Astro 7, Strapi 5, Nginx, and Ubuntu 24.04 faced a wave of October vulnerabilities that included critical flaws in PHP, Nginx, Node.js, Next.js, Java, and GitLab. Continuous monitoring agents flagged 15 high-severity issues, prompting a manual review of each CVE against the actual configuration and installed packages.

Two issues directly impacted the server: Node.js stayed four days behind the patched 22.23.4 release containing CVE-2026-111497, and Nginx packages had not yet received the latest security updates. Several other entries proved misleading. Nginx CVEs rated critical by NVD carried only medium severity on nginx.org because they required specific directives such as alias combined with rewrite or aio. The reported Next.js vulnerability actually resided in the librsvg library inside sharp, affecting any image-processing pipeline that accepts SVG files.

Verification commands and patch status

Ubuntu backports fixes without changing version numbers, so apt-get changelog must be checked rather than relying on php -v or nginx -v. Commands such as apt-cache policy nginx and apt-get changelog nginx revealed that the installed 1.24.0-2ubuntu7.18 package missed fixes for CVE-2026-15176, CVE-2026-93479, and CVE-2026-97205. After updating, sudo needrestart and checks for deleted executables in /proc confirmed that running processes had reloaded the new binaries.

Node.js from the NodeSource repository is never updated by unattended-upgrades. The four-day exposure window closed only after manual installation of 22.23.4. The same Brotli flaw also affected the system libbrotli1 package and Python brotli wheels, requiring separate verification that no process held deleted library mappings in memory.

Configuration review and migration to static delivery

Absence of PHP, Java, and GitLab immediately eliminated multiple critical remote-code-execution flaws. The site had already removed nearly all third-party scripts and inline JavaScript, leaving 132 pages without any inline scripts. Static Astro output served by Nginx now handles all requests, with sharp 0.35.5 (containing fixed librsvg 2.63.2) used only during the build phase.

The incident prompted stricter alerting rules: any security update lingering longer than 24 hours now triggers an immediate notification, regardless of whether the vulnerability matches the current configuration.

Meridian digestThe week's most consequential security stories, distilled into one briefing.See the digest

More in Vulnerabilities & Exploits

AI-Driven Discovery of PHP2Shell Zero-Day Forces Rethink of DevSecOps Practices
Critical Pre-Auth RCE Vulnerability CVE-2026-118633 Affects All Versions of Sophos UTM
Cisco ASA and FTD Firewalls Affected by DoS Vulnerability in SSL VPN Already Exploited in the Wild