An issue was discovered in Squid 3.3.9 through 3.5.28 and 4.x through 4.7. When Squid is configured to use Digest authentication, it parses the header Proxy-Authorization. It searches for certain tokens such as domain, uri, and qop. Squid checks if this token's value starts with a quote and ends with one. If so, it performs a memcpy of its length minus 2. Squid never checks whether the value is just a single quote (which would satisfy its requirements), leading to a memcpy of its length minus 1.
{
"binaries": [
{
"binary_name": "squid",
"binary_version": "3.5.12-1ubuntu7.8"
},
{
"binary_name": "squid-cgi",
"binary_version": "3.5.12-1ubuntu7.8"
},
{
"binary_name": "squid-common",
"binary_version": "3.5.12-1ubuntu7.8"
},
{
"binary_name": "squid-purge",
"binary_version": "3.5.12-1ubuntu7.8"
},
{
"binary_name": "squid3",
"binary_version": "3.5.12-1ubuntu7.8"
},
{
"binary_name": "squidclient",
"binary_version": "3.5.12-1ubuntu7.8"
}
],
"availability": "No subscription required"
}
{
"binaries": [
{
"binary_name": "squid",
"binary_version": "3.5.27-1ubuntu1.3"
},
{
"binary_name": "squid-cgi",
"binary_version": "3.5.27-1ubuntu1.3"
},
{
"binary_name": "squid-common",
"binary_version": "3.5.27-1ubuntu1.3"
},
{
"binary_name": "squid-purge",
"binary_version": "3.5.27-1ubuntu1.3"
},
{
"binary_name": "squid3",
"binary_version": "3.5.27-1ubuntu1.3"
},
{
"binary_name": "squidclient",
"binary_version": "3.5.27-1ubuntu1.3"
}
],
"availability": "No subscription required"
}