CVE Vulnerabilities

CVE-2020-24606

Improper Locking

Published: Aug 24, 2020 | Modified: Nov 21, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
7.1 HIGH
AV:N/AC:M/Au:N/C:N/I:N/A:C
RedHat/V2
RedHat/V3
7.5 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

Squid before 4.13 and 5.x before 5.0.4 allows a trusted peer to perform Denial of Service by consuming all available CPU cycles during handling of a crafted Cache Digest response message. This only occurs when cache_peer is used with the cache digests feature. The problem exists because peerDigestHandleReply() livelocking in peer_digest.cc mishandles EOF.

Weakness

The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.

Affected Software

NameVendorStart VersionEnd Version
SquidSquid-cache3.0 (including)4.13 (excluding)
SquidSquid-cache5.0.1 (including)5.0.4 (excluding)
Red Hat Enterprise Linux 7RedHatsquid-7:3.5.20-17.el7_9.4*
Red Hat Enterprise Linux 8RedHatsquid:4-8030020200828070549.30b713e6*
SquidUbuntudevel*
SquidUbuntuesm-infra/focal*
SquidUbuntufocal*
SquidUbuntugroovy*
SquidUbuntuhirsute*
SquidUbuntutrusty*
Squid3Ubuntubionic*
Squid3Ubuntuesm-infra/bionic*
Squid3Ubuntuesm-infra/xenial*
Squid3Ubuntuprecise/esm*
Squid3Ubuntutrusty*
Squid3Ubuntuxenial*

Extended Description

Locking is a type of synchronization behavior that ensures that multiple independently-operating processes or threads do not interfere with each other when accessing the same resource. All processes/threads are expected to follow the same steps for locking. If these steps are not followed precisely - or if no locking is done at all - then another process/thread could modify the shared resource in a way that is not visible or predictable to the original process. This can lead to data or memory corruption, denial of service, etc.

Potential Mitigations

References