---
name: cve-2026-111497-brotli
description: Deterministische Prüfung und Behebung von CVE-2026-111497 (Out-of-Bounds-Schreibzugriff im Google-Brotli-Decoder, CVSS 4.0 9.2) auf apt-basierten Linux-Hosts. Drei Skripte — detect.sh, remediate.sh, verify.sh — ersetzen die manuelle Erkundung des Hosts und halten den Token-Verbrauch des Sprachmodells minimal. Laden, wenn diese CVE auf einem Debian- oder Ubuntu-Host geprüft oder behoben werden soll.
whenToUse: "Wenn ein Debian- oder Ubuntu-Server auf CVE-2026-111497 (Brotli) geprüft oder dagegen behoben werden muss: Schwachstellenurteil, Ermittlung der Decode-Pfade, Distributions-Backport, Neustart der Konsumenten, Verifikation des erzielten Effekts."
metadata:
  severity: critical
  cve: CVE-2026-111497
  cwe: CWE-787
  platform: Debian 12, Ubuntu 24.04, Ubuntu 26.04
---

# Behebungsagent für CVE-2026-111497 (Brotli)

## Zweck

CVE-2026-111497 ist ein Out-of-Bounds-Schreibzugriff im Google-Brotli-Decoder. Die Ausnutzung
erfordert keine Authentifizierung: ein präparierter Brotli-Stream bringt den Prozess zum
Absturz, korrumpiert den Speicher und erreicht in bestimmten Konfigurationen
Remote-Code-Execution.

Dieser Agent reduziert eine vollständige Prüfung und Behebung auf **drei deterministische
Schritte**, von denen jeder ein kompaktes maschinenlesbares Urteil zurückgibt. Das Modell
orchestriert den Lauf und liest ein oder zwei Zeilen; es erkundet den Host nicht von Hand.

## Vorgehen (minimaler Token-Verbrauch)

Vorbereitung — die Skripte einmal auf den Zielhost bringen:

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

### Schritt 1 — Prüfung (nur lesend)

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

Nur die letzte Zeile lesen: das Urteil und eine kompakte Zusammenfassung (etwa sieben Zeilen).
Ein JSON-Bericht wird nach `/var/lib/cve-2026-111497/report.json` geschrieben.

| Exit-Code | Urteil | Aktion |
|---|---|---|
| 0 | SAFE | nichts tun, das Ergebnis dokumentieren |
| 1 | VULNERABLE | weiter mit Schritt 2 |
| 3 | NOT_INSTALLED | `libbrotli1` fehlt — dokumentieren |
| 10 | ERROR | die Meldung lesen, eskalieren |

### Schritt 2 — Behebung (nur bei VULNERABLE)

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

Das Skript führt das Folgende in dieser Reihenfolge ohne Beteiligung des Modells aus:

1. Sicherung des alten `.deb`, der aktuellen `.so`-Dateien und eines `dpkg`-Snapshots nach
   `/root/cve-2026-111497-fix-<timestamp>/`.
2. **Gate zur Echtheitsprüfung** — das Kandidatenpaket wird heruntergeladen, und sein Changelog
   muss `CVE-2026-111497` nennen. Ohne diesen Bezug erfolgt keine Installation.
3. Probelauf von `apt-get install --only-upgrade`.
4. Installation des Backports (`libbrotli1`, zusätzlich `libbrotli-dev`, wenn installiert).
5. Neustart der **Server**-Konsumenten des Decoders, ermittelt aus `/proc/*/maps` und der cgroup;
   Desktop- und Infrastrukturprozesse (GNOME, NetworkManager, VPN, fwupd) werden bewusst
   zurückgestellt — sie laden die Bibliothek bei der nächsten Anmeldung oder beim nächsten
   Neustart neu.
6. Prüfung, dass kein Prozess einen alten Inode eingebunden hält.

### Schritt 3 — Prüfung des erzielten Effekts

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

Die letzte Zeile lesen: `VERIFY: PASS` (Exit 0) oder `VERIFY: FAIL` (Exit 1).

## Prüfoberfläche

- Version von `libbrotli1`, eingeordnet gegen die Matrix der verwundbaren Versionen (1.0.3–1.0.9,
  1.1.0, 1.2.0) unter Berücksichtigung der Backports der Distribution.
- Laufende Konsumenten des Decoders (`libbrotlidec`) über `/proc/*/maps`.
- Decode-Pfade: libcurl (`brotli/...`), Node.js, Python `Brotli`/`brotlicffi`, die PHP-Erweiterung
  brotli, `ngx_brotli`, `mod_brotli`.
- Anzahl der PHP-Dateien, die `CURLOPT_ENCODING` / `CURLOPT_ACCEPT_ENCODING` verwenden —
  automatisches Dekodieren von `Content-Encoding: br` in WordPress Requests, SimplePie und Guzzle.

## Grenzen des Geltungsbereichs

- Deckt Distributionen mit apt (Debian, Ubuntu) und einen offiziellen Backport in `-security` ab.
  Ohne Backport endet das Skript und verlangt eine manuelle Mitigation (Blockieren von
  `Content-Encoding: br` am Rand) oder einen Bau von brotli 1.2.1 oder neuer aus den Quellen.
- Berührt Envoy, Istio, .NET, Bun und Deno nicht — sie liegen außerhalb des Perimeters der Hosts,
  für die dieser Agent gebaut wurde.

## Sicherheitsregeln (verbindlich)

- Auf dem Zielhost ist root erforderlich.
- Keine Änderung, bevor das Gate zur Echtheitsprüfung des Kandidaten bestanden ist.
- Rollback: `dpkg -i <backup>/deb/libbrotli1_*.deb`, dann die in Schritt 2 genannten Dienste neu
  starten.
- Nach der Behebung `systemctl --failed` und die Erreichbarkeit der gehosteten Websites prüfen.
