---
name: cve-2026-111497-brotli
description: apt-आधारित Linux होस्ट पर CVE-2026-111497 (Google Brotli डिकोडर में out-of-bounds write, CVSS 4.0 9.2) का नियतात्मक ऑडिट और निवारण। तीन स्क्रिप्ट — detect.sh, remediate.sh, verify.sh — होस्ट की हाथ से खोज को प्रतिस्थापित करती हैं और भाषा मॉडल का token व्यय न्यूनतम रखती हैं। यह तब लोड करें जब किसी Debian या Ubuntu होस्ट पर इस CVE का ऑडिट या निवारण करना हो।
whenToUse: जब किसी Debian या Ubuntu सर्वर को CVE-2026-111497 (Brotli) के लिए जाँचना या उसका निवारण करना हो — भेद्यता का निर्णय, डिकोड-पथ की खोज, distribution backport, उपभोक्ता का पुनः-प्रारंभ, प्राप्त प्रभाव का सत्यापन।
metadata:
  severity: गंभीर
  cve: CVE-2026-111497
  cwe: CWE-787
  platform: Debian 12, Ubuntu 24.04, Ubuntu 26.04
---

# CVE-2026-111497 (Brotli) के लिए निवारण एजेंट

## उद्देश्य

CVE-2026-111497 Google Brotli डिकोडर में out-of-bounds write है। शोषण के लिए किसी प्रमाणीकरण
की आवश्यकता नहीं: तैयार किया गया Brotli स्ट्रीम प्रक्रिया को crash करता है, मेमोरी भ्रष्ट करता
है और कुछ कॉन्फ़िगरेशन में दूरस्थ कोड निष्पादन तक पहुँच जाता है।

यह एजेंट पूर्ण ऑडिट और निवारण को **तीन नियतात्मक चरणों** में सिमटा देता है, और प्रत्येक चरण
संक्षिप्त मशीन-पठनीय निर्णय लौटाता है। मॉडल रन का संचालन करता है और एक-दो पंक्तियाँ पढ़ता है;
वह होस्ट को हाथ से नहीं खोजता।

## संचालन प्रक्रिया (न्यूनतम token व्यय)

तैयारी — स्क्रिप्ट एक बार लक्ष्य होस्ट पर पहुँचाएँ:

```bash
scp src/common.sh src/detect.sh src/remediate.sh src/verify.sh <host>:/root/cve-2026-111497/
```

### चरण 1 — ऑडिट (केवल-पठन)

```bash
ssh <host> 'bash /root/cve-2026-111497/detect.sh'
```

केवल अंतिम पंक्ति पढ़ें: निर्णय और संक्षिप्त सार (लगभग सात पंक्तियाँ)। एक JSON रिपोर्ट
`/var/lib/cve-2026-111497/report.json` में लिखी जाती है।

| Exit code | निर्णय | कार्रवाई |
|---|---|---|
| 0 | SAFE | कुछ न करें, परिणाम दर्ज करें |
| 1 | VULNERABLE | चरण 2 पर जाएँ |
| 3 | NOT_INSTALLED | `libbrotli1` अनुपस्थित — दर्ज करें |
| 10 | ERROR | संदेश पढ़ें, मामला ऊपर भेजें |

### चरण 2 — निवारण (केवल VULNERABLE पर)

```bash
ssh <host> 'bash /root/cve-2026-111497/remediate.sh'
```

स्क्रिप्ट मॉडल की भागीदारी के बिना, इसी क्रम में, निम्न कार्य करती है:

1. पुराने `.deb`, वर्तमान `.so` फ़ाइलों और एक `dpkg` स्नैपशॉट का बैकअप
   `/root/cve-2026-111497-fix-<timestamp>/` में।
2. **Authenticity gate** — candidate पैकेज डाउनलोड होता है और उसके changelog में
   `CVE-2026-111497` का उल्लेख होना चाहिए। उस उल्लेख के बिना संस्थापन नहीं होता।
3. `apt-get install --only-upgrade` का dry run।
4. backport का संस्थापन (`libbrotli1`, और `libbrotli-dev` यदि संस्थापित था)।
5. डिकोडर के **सर्वर** उपभोक्ताओं का पुनः-प्रारंभ, जो `/proc/*/maps` और cgroup से निकाले जाते
   हैं; डेस्कटॉप और इन्फ्रास्ट्रक्चर प्रक्रियाएँ (GNOME, NetworkManager, VPN, fwupd) जानबूझकर
   स्थगित रखी जाती हैं — वे अगले लॉगिन या रीबूट पर लाइब्रेरी पुनः लोड कर लेती हैं।
6. जाँच कि कोई प्रक्रिया पुराना inode मैप किए हुए नहीं है।

### चरण 3 — प्राप्त प्रभाव का सत्यापन

```bash
ssh <host> 'bash /root/cve-2026-111497/verify.sh'
```

अंतिम पंक्ति पढ़ें: `VERIFY: PASS` (exit 0) या `VERIFY: FAIL` (exit 1)।

## ऑडिट का दायरा

- `libbrotli1` का संस्करण, जिसे भेद्य रिलीज़ matrix (1.0.3–1.0.9, 1.1.0, 1.2.0) के विरुद्ध
  वर्गीकृत किया जाता है, distribution backports को ध्यान में रखकर।
- डिकोडर (`libbrotlidec`) के जीवित उपभोक्ता, `/proc/*/maps` के माध्यम से।
- डिकोड पथ: libcurl (`brotli/...`), Node.js, Python `Brotli`/`brotlicffi`, PHP brotli
  extension, `ngx_brotli`, `mod_brotli`।
- `CURLOPT_ENCODING` / `CURLOPT_ACCEPT_ENCODING` का उपयोग करने वाली PHP फ़ाइलों की गिनती —
  WordPress Requests, SimplePie और Guzzle में स्वचालित `Content-Encoding: br` डिकोडिंग।

## दायरे की सीमाएँ

- उन distributions को कवर करता है जिनमें apt (Debian, Ubuntu) और `-security` में आधिकारिक
  backport है। backport के बिना स्क्रिप्ट रुक जाती है और मैनुअल शमन की अपेक्षा करती है (एज पर
  `Content-Encoding: br` अवरुद्ध करना) या brotli 1.2.1 या नया स्रोत से बनाना।
- Envoy, Istio, .NET, Bun या Deno को नहीं छूता — वे उन होस्ट्स के परिधि से बाहर हैं जिनके लिए
  यह एजेंट बनाया गया है।

## सुरक्षा नियम (अनिवार्य)

- लक्ष्य होस्ट पर root आवश्यक है।
- candidate का authenticity gate पास होने से पहले कोई परिवर्तन नहीं।
- रोलबैक: `dpkg -i <backup>/deb/libbrotli1_*.deb`, फिर चरण 2 में सूचीबद्ध सेवाएँ पुनः चालू
  करें।
- निवारण के बाद `systemctl --failed` और होस्टेड साइटों की उपलब्धता जाँचें।
