Se ha publicado la versión principal de nginx 1.31.5, que continúa el desarrollo de nuevas funcionalidades. En la rama estable compatible 1.30.x, solo se incorporan cambios relacionados con la corrección de errores graves y vulnerabilidades. Más adelante, se formará una rama estable 1.32 basada en la rama principal 1.31.x. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD.
En esta nueva versión:
- Se ha añadido una API Rest para el control externo, que permite reiniciar la configuración de forma remota, obtener datos de la configuración y ver el estado de los procesos en ejecución. Para habilitar el soporte de la API, se ha previsto una opción de compilación «—with-control-api» y un argumento de línea de comandos «-l». Se recomienda asociar la API a un socket unix (nginx -l unix:/path/to/sock). Se puede utilizar la utilidad Curl para acceder a la API.
- Se ha añadido la posibilidad de utilizar una variable que comienza con el símbolo «$» como valor para la directiva Location. El valor de la variable, calculado en el momento de la ejecución, determina las condiciones de entrada en el bloque Location. Tales Location pueden utilizarse dentro de otros bloques Location o contener Location anidadas. map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; }
- Se ha implementado el módulo ngx_http_json_module, que proporciona capacidades para el análisis de datos en formato JSON, para extraer campos individuales de JSON y utilizar estos campos como variables en la configuración de nginx.
- Se ha añadido la directiva «client_body_early_read», cuya activación provoca la lectura del cuerpo de la solicitud inmediatamente después de recibir los encabezados.
Simultáneamente, se encuentra disponible la versión njs 1.0.1, un módulo para la integración del intérprete de JavaScript en el servidor http nginx. Njs permite utilizar scripts de JavaScript en archivos de configuración para ampliar las capacidades de nginx. Los scripts pueden usarse para definir lógica de procesamiento de solicitudes avanzada, generar configuraciones, crear respuestas dinámicas, modificar solicitudes/respuestas o crear rápidamente stubs para solucionar problemas en aplicaciones web. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD.
En la versión njs 1.0.1 se han corregido tres vulnerabilidades: desbordamiento de búfer en la función xml.exclusiveC14n (CVE-2026-78689), eludir la restricción de acceso a través de js_access (CVE-2026-18329) y provocar la caída del proceso de trabajo mediante manipulaciones con ngx.fetch (CVE-2026-78222).
Fuente: opennet.ru
