Bug ID 518059: The HTTP::payload iRules API appends garbage to content when transfer-encoding is chunked

Last Modified: Dec 07, 2023

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

Opened: Apr 14, 2015

Severity: 3-Major

Symptoms

Using the HTTP::payload iRules API within the iRules HTTP_RESPONSE_DATA event yields bogus data in the inspected content, when the server sends a chunked HTTP response (HTTP/1.1 Transfer-Encoding: chunked). The following characters are appended to the actual content: CR-LF-0-CR-LF-CR-LF (H'0d0a300d0a0d0a' ..0....).

Impact

Invalid content returned by the HTTP::payload iRules API when server sends a chunked HTTP response.

Conditions

HTTP::payload iRules API used within the HTTP_RESPONSE_DATA iRules event, when server responds with a chunked HTTP payload (HTTP/1.1 Transfer-Encoding: chunked).

Workaround

The iRule author can work around this issue by changing the request protocol to HTTP 1.0, since that prevents chunked transfer encoding. However, that would be inefficient because it breaks connection reuse. Workaround is just to add: HTTP::version "1.0" in HTTP_REQUEST event.

Fix Information

None

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips