La version principale de nginx 1.31.5 a été publiée, notamment pour continuer le développement de nouvelles fonctionnalités. La branche stable 1.30.x, maintenue en parallÚle, ne reçoit que des modifications liées à la correction de graves bogues et vulnérabilités. à l'avenir, une branche stable 1.32 sera formée sur la base de la branche principale 1.31.x. Le code du projet est écrit en C et est distribué sous la licence BSD.
Dans cette nouvelle version :
- Une API Rest a Ă©tĂ© ajoutĂ©e pour la gestion externe, permettant de recharger la configuration Ă distance, d'obtenir des donnĂ©es de paramĂštres et de visualiser l'Ă©tat des processus en cours. Pour activer la prise en charge de l'API, une option de construction « âwith-control-api » et un argument en ligne de commande « -l » sont prĂ©vus. Il est recommandĂ© de lier l'API Ă un socket unix (nginx -l unix:/path/to/sock). L'utilitaire Curl peut ĂȘtre utilisĂ© pour accĂ©der Ă l'API.
- Il est maintenant possible d'utiliser une variable commençant par le caractĂšre « $ » comme valeur de la directive Location. La valeur de la variable, calculĂ©e au moment de l'exĂ©cution, dĂ©termine les conditions d'entrĂ©e dans le bloc Location. De tels Location peuvent ĂȘtre utilisĂ©s Ă l'intĂ©rieur d'autres blocs Location ou contenir eux-mĂȘmes des Location imbriquĂ©s. map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; }
- Le module ngx_http_json_module a été implémenté, offrant des capacités pour analyser des données au format JSON, extraire des champs spécifiques de JSON et utiliser ces champs comme variables dans la configuration nginx.
- La directive « client_body_early_read » a Ă©tĂ© ajoutĂ©e, dont l'activation conduit Ă lire le corps de la requĂȘte immĂ©diatement aprĂšs la rĂ©ception des en-tĂȘtes.
La version njs 1.0.1 est Ă©galement disponible, un module intĂ©grant l'interprĂ©teur JavaScript dans le serveur http nginx. Njs permet d'utiliser des scripts JavaScript dans les fichiers de configuration pour Ă©tendre les fonctionnalitĂ©s de nginx. Les scripts peuvent ĂȘtre utilisĂ©s pour dĂ©finir une logique avancĂ©e de traitement des requĂȘtes, gĂ©nĂ©rer dynamiquement des rĂ©ponses, modifier des requĂȘtes/rĂ©ponses ou crĂ©er rapidement des bouchons pour rĂ©soudre des problĂšmes dans des applications web. Le code du projet est Ă©crit en C et est distribuĂ© sous la licence BSD.
Dans la version njs 1.0.1, trois vulnĂ©rabilitĂ©s ont Ă©tĂ© corrigĂ©es : un dĂ©bordement de tampon dans la fonction xml.exclusiveC14n (CVE-2026-78689), un contournement de la restriction d'accĂšs via js_access (CVE-2026-18329) et un appel Ă l'arrĂȘt d'un processus de travail via des manipulations avec ngx.fetch (CVE-2026-78222).
Source : opennet.ru
