280 Commits

Author SHA1 Message Date
8c37412c31 disable win32 in nginx-1.27.1-proc_exit_handler.patch. 2024-10-10 11:41:03 +08:00
5ef14281cd feature: add openssl-3.0.15-sess_set_get_cb_yield.patch. 2024-09-14 19:49:08 +08:00
efc930249e feat: bump openssl-1.1.1f-sess_set_get_cb_yield.patch to 3.0.12. 2024-09-14 12:49:51 +08:00
c58d90ce11 patch: add NGX_HAVE_PROC_EXIT for proc_exit_handler. 2024-08-21 09:20:41 +08:00
27303d2fd0 feature: add proc_exit_handler. 2024-08-20 20:17:08 +08:00
9fb4098d72 feature: add patches for nginx-1.27.1. (#999) 2024-08-16 21:50:43 +08:00
4da52a0574 patches: added initialize_quic_transport_id_variable.patch for nginx >= 1.27.0. (#993) 2024-08-06 22:41:40 +08:00
cc86d58043 feature: more patch for balancer_pool_max_retry. 2024-07-09 11:41:35 +08:00
3636b199e5 bugfix: respect max retry after using balancer pool.
Signed-off-by: tzssangglass <tzssangglass@gmail.com>
2024-07-08 22:20:47 +08:00
cdd227a4f6 feature: upgrade the nginx core to 1.27.0. 2024-06-26 13:36:22 +08:00
9c9495b6f9 bugfix: backport fixes for CVE-2024-24989 and CVE-2024-24990. 2024-05-01 10:11:04 +08:00
aecf396061 feature: add patch for nginx-1.25.3. 2023-11-23 18:09:34 +08:00
2f97ded92b bugfix: applied the patch for secrity advisory to NGINX cores (CVE-2023-44487). (#931) 2023-10-18 15:00:46 +08:00
d086dbcfc5 bugfix: make no_error_pages patch more accurate to ensure work properly on macOS. 2023-08-28 23:04:49 +08:00
6278b1aeae feature: upgrade nginx core to 1.25.1 which supports HTTP3. 2023-08-05 23:18:27 +08:00
d0a77980eb patches: add privileged agent thread pool (#847) 2022-07-13 23:34:54 +08:00
ae42a6bd86 upgrade nginx core to 1.23.0. (#839) 2022-06-27 15:17:19 +08:00
a7142a8934 bugfix: fixed typo in no-pool patch of 1.21.4. (#799) 2021-12-22 12:09:58 +08:00
7e1cf985cf bugfix: check if the worker_connections is 0 before privileged agent spawning. (#786)
The core dump may occur during initialization

    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  0x0000000000441711 in ngx_event_process_init (cycle=0x1e93cc0) at src/event/ngx_event.c:807
    801         i = cycle->connection_n;
    802         next = NULL;
    803
    804         do {
    805             i--;
    806
    807             c[i].data = next;
    #1  0x000000000044abb9 in ngx_worker_process_init (cycle=cycle@entry=0x1e93cc0, worker=worker@entry=-1) at src/os/unix/ngx_process_cycle.c:968
2021-11-09 14:23:33 +08:00
7df6239881 upgrade the nginx core to 1.21.4. 2021-11-05 11:59:23 +08:00
5c7ad29352 upgrade the nginx core to 1.21.3. (#779) 2021-10-26 16:07:59 +08:00
9fa420424a patches: added the nginx-1.19.9-ssl_client_hello_cb_yield patch. 2021-09-20 18:31:15 +08:00
1befa30baa upgraded ngx_http_redis module to 0.3.9. (#754) 2021-08-13 14:01:00 +08:00
c93ef77262 change: introduce a new patch for privileged agent process connections. (#751) 2021-07-19 18:34:46 +08:00
174f72b95c feature: add config ability for privileged connections number. 2021-07-13 12:47:57 +08:00
4b5ec7edd7 bugfix: applied the patch for security advisory to NGINX cores >= 0.6.18 and <= 1.20.0 (CVE-2021-23017). (#739) 2021-05-28 10:25:01 +08:00
1562e11be5 upgraded the nginx core to 1.19.9. (#717) 2021-04-01 18:20:03 +08:00
3abb2c7fae upgraded the nginx core to 1.19.8. (#715) 2021-03-29 12:36:42 +08:00
275739cf1f upgraded the nginx core to 1.19.3. 2020-09-29 20:58:19 -07:00
5d118a38a6 upgrade the nginx core to 1.19.2. 2020-09-28 12:42:57 -07:00
50717794af bugfix: nginx would crash when receiving SIGHUP in the single process mode.
Signed-off-by: Yichun Zhang (agentzh) <yichun@openresty.com>
2020-06-29 22:59:05 -07:00
6985198d46 bugfix: ngx_http_static_module: the 'Locatoin' response header value was not properly encoded by URI rules.
This may impose security vulnerabilities for Location values from
untrusted sources.

The corresponding tests are in the lua-nginx-module repo.
2020-06-25 16:50:22 -07:00
4b5cb7a546 patches: added the openssl-1.1.1f-sess_set_get_cb_yield patch. 2020-03-31 17:06:26 -07:00
7dfeed5921 win32/win64: added new patch to fix openssl compilation on windows via the mingw64 toolchain. 2020-03-19 20:06:42 -07:00
721d7dacc4 patches: added the openssl-1.1.1e-sess_set_get_cb_yield patch. 2020-03-18 21:48:45 -07:00
c1a0a9ad8f bugfix: fixed a memory leak in the OpenSSL 1.1.1 sess_set_get_cb_yield patch.
This memory leak was found by running the Valgrind testing mode against
lua-resty-core's `ssl-session-fetch.t` test suite:

    TEST 5: yield during doing handshake with client which uses low version OpenSSL

    ==16956== 64 (32 direct, 32 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 15
    ==16956== at 0x4C2B002: malloc (vg_replace_malloc.c:298)
    ==16956== by 0x5FFC868: CRYPTO_malloc (mem.c:222)
    ==16956== by 0x5FFC96F: CRYPTO_zalloc (mem.c:230)
    ==16956== by 0x603C54A: OPENSSL_sk_new_reserve (stack.c:209)
    ==16956== by 0x603C597: OPENSSL_sk_new_null (stack.c:118)
    ==16956== by 0x5C94A86: sk_SSL_CIPHER_new_null (ssl.h:960)
    ==16956== by 0x5C94A86: bytes_to_cipher_list (ssl_lib.c:5361)
    ==16956== by 0x5CB52E9: tls_early_post_process_client_hello (statem_srvr.c:1713)
    ==16956== by 0x5CB52E9: tls_post_process_client_hello (statem_srvr.c:2231)
    ==16956== by 0x5CB6F39: ossl_statem_server_post_process_message (statem_srvr.c:1218)
    ==16956== by 0x5CA4C11: read_state_machine (statem.c:664)
    ==16956== by 0x5CA4C11: state_machine (statem.c:434)
    ==16956== by 0x5CA538A: ossl_statem_accept (statem.c:255)
    ==16956== by 0x5C91759: SSL_do_handshake (ssl_lib.c:3609)
    ==16956== by 0x45456B: ngx_ssl_handshake (ngx_event_openssl.c:1606)
    ==16956== by 0x4698D3: ngx_http_ssl_handshake (ngx_http_request.c:751)
    ==16956== by 0x44ECA8: ngx_epoll_process_events (ngx_epoll_module.c:901)
    ==16956== by 0x443E94: ngx_process_events_and_timers (ngx_event.c:257)
    ==16956== by 0x44DC25: ngx_single_process_cycle (ngx_process_cycle.c:333)
    ==16956== by 0x4236AB: main (nginx.c:382)
    ==16956==
    {
    <insert_a_suppression_name_here>
    Memcheck:Leak
    match-leak-kinds: definite
    fun:malloc
    fun:CRYPTO_malloc
    fun:CRYPTO_zalloc
    fun:OPENSSL_sk_new_reserve
    fun:OPENSSL_sk_new_null
    fun:sk_SSL_CIPHER_new_null
    fun:bytes_to_cipher_list
    fun:tls_early_post_process_client_hello
    fun:tls_post_process_client_hello
    fun:ossl_statem_server_post_process_message
    fun:read_state_machine
    fun:state_machine
    fun:ossl_statem_accept
    fun:SSL_do_handshake
    fun:ngx_ssl_handshake
    fun:ngx_http_ssl_handshake
    fun:ngx_epoll_process_events
    fun:ngx_process_events_and_timers
    fun:ngx_single_process_cycle
    fun:main
    }

    ==16956== 368 (32 direct, 336 indirect) bytes in 1 blocks are definitely lost in loss record 8 of 15
    ==16956== at 0x4C2B002: malloc (vg_replace_malloc.c:298)
    ==16956== by 0x5FFC868: CRYPTO_malloc (mem.c:222)
    ==16956== by 0x5FFC96F: CRYPTO_zalloc (mem.c:230)
    ==16956== by 0x603C54A: OPENSSL_sk_new_reserve (stack.c:209)
    ==16956== by 0x603C597: OPENSSL_sk_new_null (stack.c:118)
    ==16956== by 0x5C94A79: sk_SSL_CIPHER_new_null (ssl.h:960)
    ==16956== by 0x5C94A79: bytes_to_cipher_list (ssl_lib.c:5360)
    ==16956== by 0x5CB52E9: tls_early_post_process_client_hello (statem_srvr.c:1713)
    ==16956== by 0x5CB52E9: tls_post_process_client_hello (statem_srvr.c:2231)
    ==16956== by 0x5CB6F39: ossl_statem_server_post_process_message (statem_srvr.c:1218)
    ==16956== by 0x5CA4C11: read_state_machine (statem.c:664)
    ==16956== by 0x5CA4C11: state_machine (statem.c:434)
    ==16956== by 0x5CA538A: ossl_statem_accept (statem.c:255)
    ==16956== by 0x5C91759: SSL_do_handshake (ssl_lib.c:3609)
    ==16956== by 0x45456B: ngx_ssl_handshake (ngx_event_openssl.c:1606)
    ==16956== by 0x4698D3: ngx_http_ssl_handshake (ngx_http_request.c:751)
    ==16956== by 0x44ECA8: ngx_epoll_process_events (ngx_epoll_module.c:901)
    ==16956== by 0x443E94: ngx_process_events_and_timers (ngx_event.c:257)
    ==16956== by 0x44DC25: ngx_single_process_cycle (ngx_process_cycle.c:333)
    ==16956== by 0x4236AB: main (nginx.c:382)
    ==16956==
    {
    <insert_a_suppression_name_here>
    Memcheck:Leak
    match-leak-kinds: definite
    fun:malloc
    fun:CRYPTO_malloc
    fun:CRYPTO_zalloc
    fun:OPENSSL_sk_new_reserve
    fun:OPENSSL_sk_new_null
    fun:sk_SSL_CIPHER_new_null
    fun:bytes_to_cipher_list
    fun:tls_early_post_process_client_hello
    fun:tls_post_process_client_hello
    fun:ossl_statem_server_post_process_message
    fun:read_state_machine
    fun:state_machine
    fun:ossl_statem_accept
    fun:SSL_do_handshake
    fun:ngx_ssl_handshake
    fun:ngx_http_ssl_handshake
    fun:ngx_epoll_process_events
    fun:ngx_process_events_and_timers
    fun:ngx_single_process_cycle
    fun:main
    }
2020-02-05 15:24:20 -08:00
28f76c1d27 upgraded the NGINX core to 1.17.8. 2020-01-22 16:02:49 -08:00
268229af83 misc: removed the gcc-maybe-uninitialized-warning patch.
This was fixed in the 1.5.10 release. We unconditionally remove it since
we only support NGINX cores 1.6.0 and above.
2020-01-21 11:25:56 -08:00
f17fe6edc1 change: we no longer maintain the nginx dtrace patch. 2020-01-02 20:35:41 -08:00
bad7098d88 patches: added the nginx-1.17.4 patches. 2019-09-27 11:31:52 -07:00
59e4ef5c23 bugfix: applied the patch for security advisory to NGINX cores < 1.14.1 and < 1.15.6 (CVE-2019-9511 CVE-2019-9513 CVE-2019-9516). 2019-08-14 11:39:47 -07:00
80ba3892c6 bugfix: applied the patch for security advisory to NGINX cores < 1.14.1 and < 1.15.6 (CVE-2018-16843 CVE-2018-16844). 2019-08-14 11:39:47 -07:00
d5f48a8b75 bugfix: applied the patch for security advisory to NGINX cores < 1.14.1 and < 1.15.6 (CVE-2018-16845).
Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>
2019-08-13 11:56:19 -07:00
cf7516fcbc optimize: added an NGINX core patch to ensure unused listening fds are closed when 'reuseport' is used.
When `reuseport` is enabled in the `listen` directive, Nginx will create
a listening fd for each worker process in the master process.

These fds will be inherited by the worker processes, but most of them
are unused. For example, considering we have 32 listening ip:port
configurations and 64 worker processes, each worker process will inherit
2048 (32 * 64) listening fds, but only 32 fds are used. By closing the
unused fds, this change could save up to 2016 (32 * 63) fds in a worker
process.

It doesn't affect the listening socket, since there is only one used fd
which associates to the socket with or without this change.

Co-authored-by: Thibault Charbonnier <thibaultcha@me.com>
2019-08-05 18:54:51 -07:00
34918a30c3 bugfix: support yielding in 'certificate_by_lua_*' when 'ssl_early_data' is on.
Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>
2019-07-17 16:25:50 -07:00
2e480157a3 feature: supported OpenSSL 1.1.1 by upgrading the OpenSSL patch.
Previously, we used the OpenSSL 1.1.1 ClientHello callback to do ssl
session fetching non-blockingly. However, this way cannot handle an edge
case: the ssl session resumption via session ticket might fail, and the
client fallbacks to session ID resumption. The ClientHello callback is
run too early to know if the client will fallback to use session ID
resumption.

Therefore, we have to take back the OpenSSL sess_set_get_cb_yield patch
and upgrade it to adapt OpenSSL 1.1.1.

Thanks Yongjian Xu and crasyangel for their help.

See 08e9e50.

Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>
2019-07-17 11:03:34 -07:00
a51fa56086 change: renamed the 'ssl_pending_session' patch to 'ssl_sess_cb_yield' for NGINX cores 1.17.1 and above.
Its naming is now aligned with the `ssl_cert_cb_yield` patch.

See 08e9e50 for details on why this renaming was reverted for the 1.15.8
version of this patch.
2019-07-11 11:38:57 -07:00
cef09e553f upgraded the nginx core to 1.17.1. 2019-07-11 11:29:40 -07:00
08e9e50782 Revert "feature: updated the NGINX patches for async SSL session fetching to support OpenSSL 1.1.1."
This reverts commit 9e834398de.

Support for OpenSSL 1.1.1 will come with the 1.17.1 series of NGINX
patches. Since no other 1.15.8.* releases are planned, we are reverting
the state of the 1.15.8 patches to that of the 1.15.8.1 release.
2019-07-02 11:55:50 -07:00
9e834398de feature: updated the NGINX patches for async SSL session fetching to support OpenSSL 1.1.1.
The patch was also renamed from `ssl_pending_session.patch` to
`ssl_sess_cb_yield.patch` (similarly to the existing
`ssl_cert_cb_yield.patch` one).

Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>
2019-06-04 16:40:22 -07:00