An issue was discovered in Squid through 4.7. When handling the tag esi:when when ESI is enabled, Squid calls ESIExpression::Evaluate. This function uses a fixed stack buffer to hold the expression while it's being evaluated. When processing the expression, it could either evaluate the top of the stack, or add a new member to the stack. When adding a new member, there is no check to ensure that the stack won't overflow.
{ "binaries": [ { "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", "binary_version": "3.5.12-1ubuntu7.11" } ], "ubuntu_priority": "medium", "availability": "No subscription required" }
{ "binaries": [ { "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", "binary_version": "3.5.27-1ubuntu1.6" } ], "ubuntu_priority": "medium", "availability": "No subscription required" }
{ "binaries": [ { "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", "binary_version": "4.10-1ubuntu1.1" } ], "ubuntu_priority": "medium", "availability": "No subscription required" }