Bug ID 677457: HTTP/2 Gateway appends semicolon when a request has one or more cookies

Last Modified: Sep 13, 2023

Affected Product(s):
BIG-IP LTM(all modules)

Known Affected Versions:
12.1.2, 12.1.3, 12.1.3.1, 12.1.3.2, 12.1.3.3, 13.0.0, 13.0.0 HF1, 13.0.0 HF2, 13.0.0 HF3, 13.0.1, 13.1.0, 13.1.0.1, 13.1.0.2, 13.1.0.3, 13.1.0.4, 13.1.0.5, 13.1.0.6, 13.1.0.7, 13.1.0.8, 13.1.1, 13.1.1.2, 13.1.1.3, 13.1.1.4, 13.1.1.5, 13.1.3, 13.1.3.1, 13.1.3.2, 13.1.3.3, 13.1.3.4, 13.1.3.5, 13.1.3.6, 13.1.4, 13.1.4.1, 13.1.5, 13.1.5.1, 14.0.0, 14.0.0.1, 14.0.0.2, 14.0.0.3, 14.0.0.4, 14.0.0.5, 14.0.1, 14.0.1.1

Fixed In:
14.1.0, 12.1.3.4

Opened: Aug 08, 2017

Severity: 3-Major

Related Article: K13036194

Symptoms

With an HTTP/2 profile, a virtual server on a BIG-IP system receives requests and handles cookies converting those into a cookie-string. The BIG-IP system concatenates the cookie pairs with semicolon (%3B) and a space (%20) in the cookie-string. This delimiters pair also is appended to the last cookie pair.

Impact

The request forwarded to a backend server contains an extra semicolon at the end of cookie-string.

Conditions

HTTP/2 profile is configured on a virtual server and a request contains one or more cookies.

Workaround

Use an iRule to remove an extra delimiter if it negatively impacts backend server performance. For example: when HTTP_REQUEST { if {[HTTP::header value "Cookie"] contains ";"} { set new_header [string range [HTTP::header "Cookie"] 0 end-2] log local0.notice "$new_header" HTTP::header replace "Cookie" $new_header } }

Fix Information

Virtual server with HTTP/2 profile no longer appends extra delimiter to a cookie-string when it forwards the request to HTTP/1.x backend server.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips