** Description changed: Source package: nginx This is a confirmed regression introduced by the security update in USN-8398-1, which upgraded nginx to 1.24.0-2ubuntu7.10 on Ubuntu 24.04 Noble. nginx workers segfault continuously on startup when no third-party modules are loaded. This is related to but distinct from Bug #2155992 (which requires the headers-more module). https://ubuntu.com/security/notices/USN-8398-1 - ### 1) Ubuntu release + 1) Ubuntu release ``` Description: Ubuntu 24.04 LTS Release: 24.04 Codename: noble ``` - ### 2) Package versions + 2) Package versions ``` nginx 1.24.0-2ubuntu7.10 (noble-security / noble-updates) nginx-common 1.24.0-2ubuntu7.10 (noble-security / noble-updates) ``` No `nginx-extras`, no `libnginx-mod-http-headers-more-filter`, and no dynamic modules loaded via `load_module` anywhere in the nginx configuration. - ### 3) What I expected to happen + 3) What I expected to happen nginx should continue to run normally after the security upgrade delivered by USN-8398-1. - ### 4) What happened instead + 4) What happened instead All nginx worker processes segfault immediately on startup and continue to do so continuously. The master process keeps respawning workers, which crash within seconds. nginx is entirely non-functional. This behaviour is present across multiple reboots since the upgrade was applied. Kernel log entries (from `dmesg`): ``` [28.888478] nginx[4660]: segfault at 0 ip 000056e869f68623 sp 00007ffc4bfeb868 error 4 in nginx[56e869f63000+d3000] likely on CPU 5 (core 5, socket 0) [28.890876] traps: nginx[4663] general protection fault ip:56e869f68623 sp:7ffc4bfeb868 error:0 in nginx[56e869f63000+d3000] [30.065006] nginx[4664]: segfault at f ip 000056e869f68623 sp 00007ffc4bfeb8a8 error 4 in nginx[56e869f63000+d3000] likely on CPU 7 (core 1, socket 0) [30.111606] nginx[4659]: segfault at f ip 000056e869f68623 sp 00007ffc4bfeb8a8 error 4 in nginx[56e869f63000+d3000] likely on CPU 0 (core 0, socket 0) [31.220777] nginx[4665]: segfault at f ip 000056e869f68623 sp 00007ffc4bfeb8a8 error 4 in nginx[56e869f63000+d3000] likely on CPU 2 (core 2, socket 0) [31.382838] nginx[4670]: segfault at f ip 000056e869f68623 sp 00007ffc4bfeb8a8 error 4 in nginx[56e869f63000+d3000] likely on CPU 0 (core 0, socket 0) ``` The crash offset `nginx[..+d3000]` is **identical across all workers and all reboots**. `addr2line` identifies the crashing function: ``` $ addr2line -e /usr/sbin/nginx -f 0xd3623 ngx_http_v2_string_encode ??:? ``` systemd journal entries showing heap corruption messages: ``` Jun 09 09:21:16 [redacted] nginx[469057]: double free or corruption (!prev) Jun 09 09:21:16 [redacted] nginx[469039]: worker process 469057 exited on signal 6 (core dumped) Jun 09 09:21:16 [redacted] nginx[469048]: corrupted size vs. prev_size Jun 09 09:21:16 [redacted] nginx[469039]: worker process 469048 exited on signal 6 (core dumped) Jun 09 09:21:17 [redacted] nginx[469039]: worker process 469050 exited on signal 11 (core dumped) ``` - ### 5) nginx -V output + 5) nginx -V output ``` nginx version: nginx/1.24.0 (Ubuntu) built with OpenSSL 3.0.13 30 Jan 2024 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fno-omit-frame-pointer ...' \ --with-http_ssl_module --with-http_v2_module \ [standard Ubuntu build — no third-party --add-module flags] ``` Full `nginx -V` output available on request. - ### 6) nginx -t output + 6) nginx -t output Config test passes cleanly: ``` nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ``` (Some unrelated `protocol options redefined` warnings on other vhosts, not related to the crashing behaviour.) - ### 7) Environment + 7) Environment - Kernel: `6.8.0-124-generic` - OpenSSL: `3.0.13` — matches the version nginx was built against exactly - No snap updates relevant to nginx or OpenSSL on the affected day - No dynamic modules loaded (`grep -r "load_module" /etc/nginx/` returns nothing) - ### 8) Workaround + ``` + ❯ lsb_release -rd + No LSB modules are available. + Description: Ubuntu 24.04.4 LTS + Release: 24.04 + ❯ apt-cache policy nginx + nginx: + Installed: 1.24.0-2ubuntu7 + Candidate: 1.24.0-2ubuntu7.10 + Version table: + 1.24.0-2ubuntu7.10 500 + 500 http://nova.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages + 500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages + *** 1.24.0-2ubuntu7 500 + 500 http://nova.clouds.archive.ubuntu.com/ubuntu noble/main amd64 Packages + 100 /var/lib/dpkg/status + ``` + + 8) Workaround Downgrading to `1.24.0-2ubuntu7` from `noble/main` resolves the issue immediately: ```bash sudo apt install nginx=1.24.0-2ubuntu7 nginx-common=1.24.0-2ubuntu7 sudo apt-mark hold nginx nginx-common ``` - ### 9) Relationship to existing bugs + 9) Relationship to existing bugs This is **distinct from Bug #2155992 / #2155999**, which require `libnginx-mod-http-headers-more-filter` to be loaded. This system has no headers-more module installed or loaded at all. The crash address resolves to `ngx_http_v2_string_encode`, consistent with the HTTP/2 code path touched by USN-8398-1, suggesting the regression is broader than the headers-more case. Marking as related-to (not duplicate-of) Bug #2155992.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2156028 Title: nginx workers segfault after upgrade to 1.24.0-2ubuntu7.10 -- no headers-more module loaded To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/2156028/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
