From 4184f286d2e013e088af8e8bb90f7e01abbd2e3e Mon Sep 17 00:00:00 2001 From: tomcruiseqi <10762123+tomcruiseqi@user.noreply.gitee.com> Date: Fri, 4 Jul 2025 13:46:30 +0800 Subject: [PATCH] [CVE] CVE-2025-23419 to #18862 add patch to fix CVE-2025-23419 Project: TC2024080204 Signed-off-by: tomcruiseqi <10762123+tomcruiseqi@user.noreply.gitee.com> --- 1-bugfix-for-CVE-2025-23419.patch | 45 +++++++++++++++++++++++++++++++ nginx.spec | 6 ++++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 1-bugfix-for-CVE-2025-23419.patch diff --git a/1-bugfix-for-CVE-2025-23419.patch b/1-bugfix-for-CVE-2025-23419.patch new file mode 100644 index 0000000..bee1c1c --- /dev/null +++ b/1-bugfix-for-CVE-2025-23419.patch @@ -0,0 +1,45 @@ +diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c +index 684fabd..404aa77 100644 +--- a/src/http/ngx_http_request.c ++++ b/src/http/ngx_http_request.c +@@ -921,6 +921,31 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) + goto done; + } + ++ sscf = ngx_http_get_module_srv_conf(cscf->ctx, ngx_http_ssl_module); ++ ++#if (defined TLS1_3_VERSION \ ++ && !defined LIBRESSL_VERSION_NUMBER && !defined OPENSSL_IS_BORINGSSL) ++ ++ /* ++ * SSL_SESSION_get0_hostname() is only available in OpenSSL 1.1.1+, ++ * but servername being negotiated in every TLSv1.3 handshake ++ * is only returned in OpenSSL 1.1.1+ as well ++ */ ++ ++ if (sscf->verify) { ++ const char *hostname; ++ ++ hostname = SSL_SESSION_get0_hostname(SSL_get0_session(ssl_conn)); ++ ++ if (hostname != NULL && ngx_strcmp(hostname, servername) != 0) { ++ c->ssl->handshake_rejected = 1; ++ *ad = SSL_AD_ACCESS_DENIED; ++ return SSL_TLSEXT_ERR_ALERT_FATAL; ++ } ++ } ++ ++#endif ++ + hc->ssl_servername = ngx_palloc(c->pool, sizeof(ngx_str_t)); + if (hc->ssl_servername == NULL) { + goto error; +@@ -934,8 +959,6 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) + + ngx_set_connection_log(c, clcf->error_log); + +- sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_ssl_module); +- + c->ssl->buffer_size = sscf->buffer_size; + + if (sscf->ssl.ctx) { diff --git a/nginx.spec b/nginx.spec index f53494f..36d96e1 100644 --- a/nginx.spec +++ b/nginx.spec @@ -1,4 +1,4 @@ -%define anolis_release 1 +%define anolis_release 2 %global _hardened_build 1 %global nginx_user nginx @@ -50,6 +50,7 @@ Source200: README.dynamic Source210: UPGRADE-NOTES-1.6-to-1.10 +Patch1: 1-bugfix-for-CVE-2025-23419.patch BuildRequires: make gcc %if 0%{with gperftools} BuildRequires: gperftools-devel @@ -684,6 +685,9 @@ fi %doc CHANGES README README.dynamic %changelog +* Fri Jul 04 2025 tomcruiseqi <10762123+tomcruiseqi@user.noreply.gitee.com> - 1.26.2-2 +- Fix CVE-2025-23419 + * Wed Mar 19 2025 Hong Wei Qin - 1:1.26.2-1 - Update to 1.26.2 from 1.24.0 -- Gitee