Neue Schwachstelle im Rewrite-Modul von Nginx

Kurz nach der Entdeckung einer 18-jährigen potenziellen RCE wurde eine weitere Schwachstelle entdeckt, CVE-2026-9256, die diesmal sogar noch länger bestand—21 Jahre, beginnend mit Version 0.1.17, die Anfang 2005 veröffentlicht wurde.
Um die Schwachstelle auszunutzen, muss im Server-Config die Rewrite-Direktive vorhanden sein, bei der:

  • im ersten Argument sich überschneidende, herausgehobene Parameter des regulären Ausdrucks vorhanden sind,
  • im zweiten zwei oder mehr hiervon verwendet werden, jedoch keine Variablen verwendet werden,
  • wobei entweder der Typ "redirect" angegeben ist oder die Parameter im zweiten Argument nach dem Fragezeichen stehen.

Beispiele:
rewrite ^/((.*))$ http://127.0.0.1:8080/$1$2 redirect;
rewrite ^/((.*))$ http://127.0.0.1:8080/?$1$2;

Beide führen zu einem Buffer Overflow bei der Verarbeitung der Anfrage „/++++++++++++++++++++++++++++++“.

Wie bei der vorherigen Schwachstelle kann in diesem Fall die berechnete Pufferlänge von der tatsächlichen Anzahl der darin geschriebenen Daten abweichen—bei der Berechnung der Länge wurde nicht überall das mögliche Escaping berücksichtigt.

Die oben genannten Probleme können zu einem Absturz des nginx-Arbeitsprozesses führen, und ohne ALSR kann dies zu RCE führen. Als mildernder Faktor ist zu beachten, dass es noch unwahrscheinlicher ist, verletzliche Konstruktionen in der Konfiguration zu finden als beim letzten Mal.

Der Fehler wurde in den Versionen 1.30.2 und 1.31.1 behoben (Commit zur Behebung).

Quelle: linux.org.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster