<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>OOB Write on CyberVeille</title>
    <link>https://cyberveille.ch/tags/oob-write/</link>
    <description>Recent content in OOB Write on CyberVeille</description>
    <generator>Hugo -- 0.146.0</generator>
    <language>fr-fr</language>
    <copyright>Cyberveille CC BY-NC-SA 4.0</copyright>
    <lastBuildDate>Tue, 27 Oct 2026 00:00:00 +0100</lastBuildDate>
    <atom:link href="https://cyberveille.ch/tags/oob-write/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CVE-2026-111497 (Node2Shell/Broccoli) : guide de détection pour l&#39;OOB write du décodeur Brotli</title>
      <link>https://cyberveille.ch/posts/2026-10-27-cve-2026-111497-node2shell-broccoli-guide-de-detection-pour-l-oob-write-du-decodeur-brotli/</link>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0100</pubDate>
      <guid>https://cyberveille.ch/posts/2026-10-27-cve-2026-111497-node2shell-broccoli-guide-de-detection-pour-l-oob-write-du-decodeur-brotli/</guid>
      <description>&lt;h2 id=&#34;-contexte&#34;&gt;🔍 Contexte&lt;/h2&gt;
&lt;p&gt;Publié le 27 octobre 2026 sur GitHub Gist, ce document est un guide d&amp;rsquo;ingénierie de détection pour &lt;strong&gt;CVE-2026-111497&lt;/strong&gt; (alias Node2Shell / Broccoli), une vulnérabilité d&amp;rsquo;&lt;strong&gt;écriture hors limites (OOB write)&lt;/strong&gt; dans le décodeur Brotli (&lt;strong&gt;CWE-787 + CWE-252&lt;/strong&gt;, &lt;strong&gt;CVSS v4.0 : 9.2&lt;/strong&gt;). L&amp;rsquo;article couvre la reproduction et la détection, non la découverte de la vulnérabilité.&lt;/p&gt;
&lt;h2 id=&#34;-vulnérabilité&#34;&gt;🐛 Vulnérabilité&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Produits affectés&lt;/strong&gt; : Brotli 1.0.3–1.2.0 (bibliothèque upstream), ainsi que les copies embarquées dans &lt;strong&gt;Node.js&lt;/strong&gt;, &lt;strong&gt;Python&lt;/strong&gt;, &lt;strong&gt;Bun&lt;/strong&gt;, &lt;strong&gt;Envoy&lt;/strong&gt;, derrière des proxies nginx/Apache/CDN&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mécanisme&lt;/strong&gt; : le décodeur confond une entrée malformée avec une entrée incomplète, remplit un buffer d&amp;rsquo;état de 8 octets au-delà de sa limite et corrompt l&amp;rsquo;état adjacent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Statut d&amp;rsquo;exploitation&lt;/strong&gt; : CISA SSVC (au 23/10/2026) = Exploitation = None ; CVE absent du KEV&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Payload de test vérifié&lt;/strong&gt; : 23 068 706 octets, SHA256 &lt;code&gt;15273d4e…&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-versions-corrigées&#34;&gt;🛠️ Versions corrigées&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Brotli&lt;/strong&gt; : 1.0.10 / 1.1.1 / 1.2.1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt; : 22.23.4 / 24.22.1 / 26.12.1 (lignes EOL 25, 23, 21, 20 et antérieures : pas de correctif)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python Brotli&lt;/strong&gt; ≥ 1.2.1, &lt;strong&gt;brotlicffi&lt;/strong&gt; ≥ 1.2.1.0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bun&lt;/strong&gt; ≥ 1.4.4&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Envoy/Istio&lt;/strong&gt; : selon le fournisseur&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-règles-de-détection-fournies&#34;&gt;📋 Règles de détection fournies&lt;/h2&gt;
&lt;h3 id=&#34;sigma-logs-applicatifs&#34;&gt;Sigma (logs applicatifs)&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Règle&lt;/th&gt;
          &lt;th&gt;ID&lt;/th&gt;
          &lt;th&gt;Statut&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;brotli-block-switch-probe&lt;/td&gt;
          &lt;td&gt;d399f74f&lt;/td&gt;
          &lt;td&gt;Vérifié, non déployé&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;python-decoder-unhealthy&lt;/td&gt;
          &lt;td&gt;39cd92fe&lt;/td&gt;
          &lt;td&gt;Vérifié, non déployé&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;node-zbuf-eof&lt;/td&gt;
          &lt;td&gt;71830d89&lt;/td&gt;
          &lt;td&gt;Vérifié, FP connus (TRIAGE)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;python-decoder-failed&lt;/td&gt;
          &lt;td&gt;090042ad&lt;/td&gt;
          &lt;td&gt;Vérifié, générique (TRIAGE)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;node-eof-near-zbuf (corrélation temporelle)&lt;/td&gt;
          &lt;td&gt;999a07f6&lt;/td&gt;
          &lt;td&gt;Vérifié, TRIAGE&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;urllib3-decode-failure&lt;/td&gt;
          &lt;td&gt;4c8d283a&lt;/td&gt;
          &lt;td&gt;Syntaxe vérifiée&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;suricata&#34;&gt;Suricata&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2026114971&lt;/strong&gt; : tripwire corps de requête br (HTTP/1.1 + HTTP/2)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2026114972/73&lt;/strong&gt; : anomalie egress (direction corrigée)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;modsecurity&#34;&gt;ModSecurity&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2026114975&lt;/strong&gt; : corps de requête br (moteur v3, 7/7 fixtures)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;falco&#34;&gt;Falco&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cve111497_falco.yaml&lt;/code&gt; : crash→exec / memfd / egress — non compilé, validation requise&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-points-dattention-opérationnels&#34;&gt;⚠️ Points d&amp;rsquo;attention opérationnels&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;process.versions.brotli&lt;/code&gt; rapporte toujours &lt;code&gt;1.2.0&lt;/code&gt; sur Node.js 24.22.1 patché — ne pas utiliser pour l&amp;rsquo;inventaire&lt;/li&gt;
&lt;li&gt;Les erreurs décodeur atterrissent dans les logs applicatifs sans IP client ; les IPs sont dans les logs proxy — jointure nécessaire sur request ID ou timestamp+source&lt;/li&gt;
&lt;li&gt;Un exploit armé peut provoquer un SIGSEGV avant tout flush de log — capturer stdout/stderr au niveau runtime (docker/k8s log driver, journald)&lt;/li&gt;
&lt;li&gt;Aucune règle n&amp;rsquo;est encore vérifiée en production réelle&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-type-darticle&#34;&gt;📌 Type d&amp;rsquo;article&lt;/h2&gt;
&lt;p&gt;Guide d&amp;rsquo;ingénierie de détection technique (analyse technique + recommandations de déploiement de règles), destiné aux équipes SOC et detection engineering pour opérationnaliser la détection de CVE-2026-111497.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
