Neuigkeiten von trion.
Immer gut informiert.

Brotli Schwachstelle CVE-2026-111497: Schutz mit Traefik IngressRoute

Kubernetes

Im Brotli Decoder von Google gibt es mit CVE-2026-111497 eine Schwachstelle, bei der ein speziell gestalteter Inhalt einen Schreibzugriff außerhalb vom vorgesehenen Puffer auslöst.
Betroffen sind die Versionen 1.0.3 bis 1.2.0, behoben ist die Schwachstelle in 1.0.10, 1.1.1 und 1.2.1. Da viele Laufzeitumgebungen und Bibliotheken Brotli einbinden, etwa Node.js und Python, dauert es, bis alle Anwendungen im Cluster aktualisiert sind.
Bei manchen Anwendungen ist bisher auch gar nicht ganz klar, ob diese betroffen sind, oder nicht.

Bis zur Klärung und Behebung des Problems kann ein Ingress Controller genutzt werden, um Requests abzuweisen, die einen als Brotli deklarierten Inhalt aufweisen.
Dieser Beitrag zeigt dazu eine einfache Regel für Traefik.

IngressRoute

HTTP zeichnet den Inhalt von Requests mit dem Header Content-Encoding aus. Brotlis ist entsprechend an Content-Encoding: br zu erkennen. Damit ist es nun möglich, dass Traefik anhand des Headers einen spezifischen Router auswählt, so dass solche Requests nicht an verwundbare Anwendungen gelangen. Ein Ziel könnte der interne Service noop@internal sein, der die Anfrage beantwortet, ohne den Request an irgendeine Anwendung weiterzugeben.

Requests mit Content-Encoding: br abweisen
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: block-br-requests
  namespace: traefik-ingress
spec:
  entryPoints:
    - web
  routes:
    - match: HeaderRegexp(`Content-Encoding`, `(?i)\bbr\b`)
      priority: 10000
      kind: Rule
      services:
        - name: noop@internal
          kind: TraefikService

Unter entryPoints müssen die Einstiegspunkte eingetragen werden, die tatsächlich erreichbar sind, in der Regel websecure. Damit die Route stets genutzt wird, hat sie eine sehr hohe Priorität erhalten und hat zudem keine einschränkenden Host- oder Pfadbedingungen.

Validierung

Die Regel kann beispielsweise in einem lokalen kind Cluster mit Traefik und der Beispielanwendung traefik/whoami als Backend getestet werden.
noop@internal antwortet mit dem Status 418, die traefik/whoami Anwendung mit dem Staatuscode 200.

Requests mit unterschiedlichem Header
$ curl -s -o /dev/null -w "%{http_code}\n" -X POST -d x localhost:18000/
200
$ curl -s -o /dev/null -w "%{http_code}\n" -X POST -H "Content-Encoding: br" -d x localhost:18000/
418
$ curl -s -o /dev/null -w "%{http_code}\n" -X POST -H "Content-Encoding: gzip, br" -d x localhost:18000/
418
$ curl -s -o /dev/null -w "%{http_code}\n" -X POST -H "Content-Encoding: gzip" -d x localhost:18000/
200

Abgerenzung

Die Regel hilfet nur bei Brotli Requests, die von außen an den Cluster gesendet werden, nicht, wenn eine Anwendung ausgehende Requests an böswillige Server sendet.

Die Regel ist lediglich eine temporäre Lösung und ersetzt nicht das Aktualisieren der betroffenen Komponenten. Welche Images eine verwundbare Brotli Version enthalten, lässt sich mit einem Scan oder durch Prüfen der Image-Layer feststellen, siehe dazu auch Layer eines Container Image bestimmen.

Feedback oder Fragen zu einem Artikel - per E-Mail an [email protected] oder über das Kontaktformular. Wir freuen uns auf eine Kontaktaufnahme!

Suche

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.