mirror of
https://github.com/nginx/nginx.git
synced 2026-05-13 17:46:53 +00:00
QUIC: worker-bound stateless reset tokens.
Previously, it was possible to obtain a stateless reset token for a connection by routing its packet to a wrong worker. This allowed to terminate the connection. The fix is to bind stateless reset token to the worker number.
This commit is contained in:
parent
7ac4e6b106
commit
0fa49c5f7f
1 changed files with 6 additions and 2 deletions
|
|
@ -15,9 +15,13 @@ ngx_quic_new_sr_token(ngx_connection_t *c, ngx_str_t *cid, u_char *secret,
|
|||
u_char *token)
|
||||
{
|
||||
ngx_str_t tmp;
|
||||
u_char buf[NGX_QUIC_SR_KEY_LEN + sizeof(ngx_uint_t)];
|
||||
|
||||
tmp.data = secret;
|
||||
tmp.len = NGX_QUIC_SR_KEY_LEN;
|
||||
ngx_memcpy(buf, secret, NGX_QUIC_SR_KEY_LEN);
|
||||
ngx_memcpy(buf + NGX_QUIC_SR_KEY_LEN, &ngx_worker, sizeof(ngx_uint_t));
|
||||
|
||||
tmp.data = buf;
|
||||
tmp.len = sizeof(buf);
|
||||
|
||||
if (ngx_quic_derive_key(c->log, "sr_token_key", &tmp, cid, token,
|
||||
NGX_QUIC_SR_TOKEN_LEN)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue