An issue was discovered in Squid through 4.7. When Squid is parsing ESI, it keeps the ESI elements in ESIContext. ESIContext contains a buffer for holding a stack of ESIElements. When a new ESIElement is parsed, it is added via addStackElement. addStackElement has a check for the number of elements in this buffer, but it's off by 1, leading to a Heap Overflow of 1 element. The overflow is within the same structure so it can't affect adjacent memory blocks, and thus just leads to a crash while processing.
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-cgi" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-cgi-dbgsym" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-common" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-dbg" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-dbgsym" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-purge" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid-purge-dbgsym" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squid3" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squidclient" }, { "binary_version": "3.5.12-1ubuntu7.11", "binary_name": "squidclient-dbgsym" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid-cgi" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid-common" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid-dbg" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid-purge" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squid3" }, { "binary_version": "3.5.27-1ubuntu1.6", "binary_name": "squidclient" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-cgi" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-cgi-dbgsym" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-common" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-dbgsym" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-purge" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squid-purge-dbgsym" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squidclient" }, { "binary_version": "4.10-1ubuntu1.1", "binary_name": "squidclient-dbgsym" } ] }