diff --git a/meta-webserver/recipes-httpd/nginx/files/CVE-2026-42945.patch b/meta-webserver/recipes-httpd/nginx/files/CVE-2026-42945.patch new file mode 100644 index 0000000000..df26fd79dc --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/CVE-2026-42945.patch @@ -0,0 +1,47 @@ +From 524977e7c534e87e5b55739fa74601c9f1102686 Mon Sep 17 00:00:00 2001 +From: Roman Arutyunyan +Date: Wed, 22 Apr 2026 09:39:31 +0400 +Subject: [PATCH] Rewrite: fixed escaping and possible buffer overrun + +The following code resulted in incorrect escaping of $1 and possible +segfault: + + location / { + rewrite ^(.*) /new?c=1; + set $myvar $1; + return 200 $myvar; + } + +If there were arguments in a rewrite's replacement string, the is_args flag +was set and incorrectly never cleared. This resulted in escaping applied +to any captures evaluated afterwards in set or if. Additionally buffer was +allocated by ngx_http_script_complex_value_code() without escaping expected, +thus this also resulted in buffer overrun and possible segfault. + +A similar issue was fixed in 74d939974d43. + +Reported by Leo Lin. + +CVE: CVE-2026-42945 +Upstream-Status: Backport [https://github.com/nginx/nginx/commit/524977e7c534e87e5b55739fa74601c9f1102686] + +(cherry picked from commit 524977e7c534e87e5b55739fa74601c9f1102686) +Signed-off-by: Hetvi Thakar +--- + src/http/ngx_http_script.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c +index a2b9f1b7b..2ea611373 100644 +--- a/src/http/ngx_http_script.c ++++ b/src/http/ngx_http_script.c +@@ -1202,6 +1202,7 @@ ngx_http_script_regex_end_code(ngx_http_script_engine_t *e) + + r = e->request; + ++ e->is_args = 0; + e->quote = 0; + + ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, +-- +2.35.6 diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.28.3.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.28.3.bb index 0d6996adfc..308edd96bd 100644 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.28.3.bb +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.28.3.bb @@ -5,6 +5,7 @@ SRC_URI:append = " \ file://CVE-2026-42934.patch \ file://CVE-2026-42946_p1.patch \ file://CVE-2026-42946_p2.patch \ + file://CVE-2026-42945.patch \ " LIC_FILES_CHKSUM = "file://LICENSE;md5=3dc49537b08b14c8b66ad247bb4c4593" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.29.7.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.29.7.bb index 9867ebea3d..4a3d524346 100644 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.29.7.bb +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.29.7.bb @@ -5,6 +5,7 @@ SRC_URI:append = " \ file://CVE-2026-42934.patch \ file://CVE-2026-42946_p1.patch \ file://CVE-2026-42946_p2.patch \ + file://CVE-2026-42945.patch \ " # 1.28.x branch is the current stable branch, the recommended default