Nouvelle version de nginx 1.27.0 avec la correction de 4 vulnérabilités dans l'implémentation HTTP/3

La première version de la nouvelle branche principale nginx 1.27.0 a été présentée, qui continuera à développer de nouvelles fonctionnalités. En même temps, la version nginx 1.26.1 a été formée, qui appartient à la branche stable maintenue en parallèle, dans laquelle seules des modifications liées à la correction de bogues critiques et de vulnérabilités sont apportées. L'année prochaine, une branche stable 1.28 sera formée sur la base de la branche principale 1.27.x. Le code du projet est écrit en C et est distribué sous licence BSD.

Les nouvelles versions corrigent 4 vulnérabilités touchant le module expérimental ngx_http_v3 (désactivé par défaut), qui offre le support du protocole HTTP/3 utilisant le protocole QUIC comme transport pour HTTP/2. Les problèmes ne se manifestent que lorsque le module ngx_http_v3_module est activé et que l'option «quic» est définie dans la directive «listen». Aucune information n'est encore disponible concernant la vulnérabilité des forks Angie et FreeNginx.

La vulnérabilité CVE-2024-34161 entraîne une fuite de contenu mémoire du processus de travail sur des systèmes dont la MTU est définie à une valeur supérieure à 4096 octets. La fuite de contenu mémoire se produit lors de l'envoi de trames CRYPTO utilisées lors de l'établissement de la connexion, après que le client a envoyé le message de finalisation.

Les vulnérabilités CVE-2024-31079, CVE-2024-32760 et CVE-2024-35200 sont causées par des corruptions de mémoire et permettent à un attaquant distant de provoquer un arrêt anormal du processus de travail nginx en établissant une session spécialement formatée basée sur le protocole QUIC. De plus, pour les vulnérabilités CVE-2024-31079 et CVE-2024-32760, d'autres conséquences de l'attaque ne sont pas exclues (possibilité potentielle d'exécution de code par l'attaquant ?). Les détails ne sont pas fournis, mais d'après les corrections dans le code, les vulnérabilités sont causées par des accès à de la mémoire déjà libérée (use-after-free), un mauvais allocation de mémoire pour un tableau, le déréférencement d'un pointeur nul et l'absence de vérification adéquate de la taille des données placées dans le tampon.

Parmi les modifications non liées aux corrections de vulnérabilités dans nginx 1.27.0 :

  • Dans les directives «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» et «uwsgi_limit_rate», le support pour la spécification de variables a été ajouté.
  • La consommation de mémoire a été réduite lors du traitement des requêtes long-terme dans des configurations utilisant les directives «gzip», «gunzip», «ssi», «sub_filter» ou «grpc_pass».
  • Les problèmes de compilation dans GCC 14 lors de l'utilisation de l'option «–with-atomic» ont été résolus.
  • Des erreurs dans l'implémentation de HTTP/3 ont été corrigées.

On peut également noter la publication d'une nouvelle branche principale de FreeNginx 1.27.0, un fork de Nginx, développé par Maxim Dunin, un des développeurs clés de Nginx. FreeNginx se positionne comme un projet non lucratif, garantissant le développement de la base de code Nginx sans intervention corporate. Dans cette nouvelle version, le traitement des erreurs lors de la lecture du corps de la requête a été amélioré, la compilation sur NetBSD 10.0 a été actualisée et l'enregistrement des fichiers PID (le paramètre «off» a été ajouté à la directive «pid») a été optimisé.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster