Opened 4 years ago

Last modified 4 years ago

#861 accepted defect

Possibility of Inconsistent HPACK Dynamic Table Size in HTTP/2 Implementation

Reported by: tim-becker@… Owned by:
Priority: minor Milestone:
Component: nginx-module Version: 1.9.x
Keywords: Cc:
uname -a: Linux vagrant-ubuntu-trusty-64 3.13.0-68-generic #111-Ubuntu SMP Fri Nov 6 18:17:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.9.9

Description

The hpack dynamic table is only initialized upon addition of the first entry (see ngx_http_v2_add_header) in http/v2/ngx_http_v2_table.c.

If a dynamic table size update is sent before the first header to be added, the size will be set appropriately. However, once the first header is added, the table size is updated with NGX_HTTP_V2_TABLE_SIZE, resulting in a different size than the client.

After a brief reading of the HTTP/2 and HPACK specification, it appears that updating the dynamic table size before adding any headers is allowed.

Change History (2)

comment:1 Changed 4 years ago by tim-becker@…

Also, I apologize for marking the component as documentation. I would update it to nginx-module, but I don't see an option to do so.

Last edited 4 years ago by tim-becker@… (previous) (diff)

comment:2 Changed 4 years ago by vbart

  • Component changed from documentation to nginx-module
  • Status changed from new to accepted

Thank you for the report. Yes, it looks like a problem, but it's absolutely safe.

Note: See TracTickets for help on using tickets.