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.
http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00018.html
http://www.openwall.com/lists/oss-security/2020/04/23/1
https://gitlab.com/jeriko.one/security/-/blob/master/squid/CVEs/CVE-2019-12519.txt
https://lists.debian.org/debian-lts-announce/2020/07/msg00009.html
https://security.gentoo.org/glsa/202005-05
https://security.netapp.com/advisory/ntap-20210205-0006/
Source: MITRE
Published: 2020-04-15
Updated: 2021-02-11
Type: CWE-787
Base Score: 7.5
Vector: AV:N/AC:L/Au:N/C:P/I:P/A:P
Impact Score: 6.4
Exploitability Score: 10
Severity: HIGH
Base Score: 9.8
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Impact Score: 5.9
Exploitability Score: 3.9
Severity: CRITICAL