Neue Version nginx 1.27.0 mit Behebung von 4 Sicherheitsanfälligkeiten in der HTTP/3 Implementierung

Die erste Version des neuen Hauptzweigs nginx 1.27.0 wurde veröffentlicht, in der die Entwicklung neuer Funktionen fortgesetzt wird. Gleichzeitig wurde die Version nginx 1.26.1 erstellt, die zum parallel unterstützten stabilen Zweig gehört, in den nur Änderungen zur Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten eingeführt werden. Im nächsten Jahr wird auf Basis des Hauptzweigs 1.27.x ein stabiler Zweig 1.28 gebildet. Der Code des Projekts ist in C geschrieben und steht unter der BSD-Lizenz.

In den neuen Versionen wurden 4 Sicherheitsanfälligkeiten behoben, die das experimentelle Modul ngx_http_v3 betreffen (standardmäßig deaktiviert), das Unterstützung für das HTTP/3-Protokoll bietet, das das QUIC-Protokoll als Transport für HTTP/2 verwendet. Die Probleme treten nur auf, wenn das Modul ngx_http_v3_module aktiviert ist und die Option „quic“ in der Direktive „listen“ festgelegt wird. Zur Anfälligkeit der Forks Angie und FreeNginx liegen bisher keine Informationen vor.

Die Sicherheitsanfälligkeit CVE-2024-34161 führt zu einem Speicherleck des Arbeitprozesses auf Systemen mit MTU, die auf einen Wert größer als 4096 Byte eingestellt sind. Das Speicherleck tritt auf, wenn CRYPTO-Pakete, die zur Aushandlung der Verbindung verwendet werden, nach dem Senden der abschließenden Nachricht durch den Client gesendet werden.

Die Sicherheitsanfälligkeiten CVE-2024-31079, CVE-2024-32760 und CVE-2024-35200 werden durch Speicherbeschädigung verursacht und ermöglichen es einem Remote-Angreifer, den Arbeitprozess von nginx zum Absturz zu bringen, indem er eine speziell gestaltete QUIC-Sitzung einrichtet. Bei den Sicherheitsanfälligkeiten CVE-2024-31079 und CVE-2024-32760 sind auch andere Auswirkungen eines Angriffs nicht auszuschließen (potenzielle Möglichkeit einer Codeausführung durch den Angreifer?). Details werden nicht angegeben, aber laut den Korrekturen im Code werden die Sicherheitsanfälligkeiten durch den Zugriff auf bereits freigegebenen Speicher (use-after-free), falsche Speicherzuweisung für ein Array, Dereferenzierung eines Nullzeigers und fehlende ordnungsgemäße Größenprüfung der in den Puffer eingefügten Daten verursacht.

Unter den nicht mit der Beseitigung von Sicherheitsanfälligkeiten verbundenen Änderungen in nginx 1.27.0:

  • In den Direktiven „proxy_limit_rate“, „fastcgi_limit_rate“, „scgi_limit_rate“ und „uwsgi_limit_rate“ wurde die Unterstützung für die Angabe von Variablen hinzugefügt.
  • Der Speicherverbrauch wurde bei der Verarbeitung von langanhaltenden Anfragen in Konfigurationen reduziert, in denen die Direktiven „gzip“, „gunzip“, „ssi“, „sub_filter“ oder „grpc_pass“ verwendet werden.
  • Probleme mit dem Zusammenbau in GCC 14 bei Verwendung der Option „—with-atomic“ wurden behoben.
  • Fehler in der Implementierung von HTTP/3 wurden korrigiert.

Zusätzlich kann die Veröffentlichung des neuen Hauptzweigs FreeNginx 1.27.0, einem Nginx-Fork, der von Maxim Dunin, einem der Hauptentwickler von Nginx, weiterentwickelt wird, erwähnt werden. FreeNginx positioniert sich als gemeinnütziges Projekt, das die Entwicklung des Nginx-Codebases ohne unternehmerische Eingriffe gewährleistet. In der neuen Version wurde die Fehlerbehandlung beim Lesen des Anfragekörpers verbessert, der Bau in NetBSD 10.0 wurde optimiert und die PID-Datei-Schreibung wurde verbessert (im Befehl „pid“ wurde der Parameter „off“ hinzugefügt).

Quelle: opennet.ru

60GB SSD 8Gb DDR4