Skip to content
OpenAdvisories
Medium · 5.9 CVE-2024-9681 EUVD-2024-50377GHSA-g337-g667-mjvw

HSTS subdomain overwrites parent cache entry

Published Nov 6, 2024 · Updated Nov 3, 2025 · Assigned by curl

Description

When curl is asked to use HSTS, the expiry time for a subdomain might
overwrite a parent domain's cache entry, making it end sooner or later than
otherwise intended.

This affects curl using applications that enable HSTS and use URLs with the
insecure `HTTP://` scheme and perform transfers with hosts like
`x.example.com` as well as `example.com` where the first host is a subdomain
of the second host.

(The HSTS cache either needs to have been populated manually or there needs to
have been previous HTTPS accesses done as the cache needs to have entries for
the domains involved to trigger this problem.)

When `x.example.com` responds with `Strict-Transport-Security:` headers, this
bug can make the subdomain's expiry timeout *bleed over* and get set for the
parent domain `example.com` in curl's HSTS cache.

The result of a triggered bug is that HTTP accesses to `example.com` get
converted to HTTPS for a different period of time than what was asked for by
the origin server. If `example.com` for example stops supporting HTTPS at its
expiry time, curl might then fail to access `http://example.com` until the
(wrongly set) timeout expires. This bug can also expire the parent's entry
*earlier*, thus making curl inadvertently switch back to insecure HTTP earlier
than otherwise intended.

Affected products

VendorProductAffectedFixed
curl curl 8.10.1 – ≤ 8.10.1, 8.10.0 – ≤ 8.10.0, 8.9.1 – ≤ 8.9.1, 8.9.0 – ≤ 8.9.0, 8.8.0 – ≤ 8.8.0, 8.7.1 – ≤ 8.7.1, 8.7.0 – ≤ 8.7.0, 8.6.0 – ≤ 8.6.0, 8.5.0 – ≤ 8.5.0, 8.4.0 – ≤ 8.4.0, 8.3.0 – ≤ 8.3.0, 8.2.1 – ≤ 8.2.1, 8.2.0 – ≤ 8.2.0, 8.1.2 – ≤ 8.1.2, 8.1.1 – ≤ 8.1.1, 8.1.0 – ≤ 8.1.0, 8.0.1 – ≤ 8.0.1, 8.0.0 … —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 curl 8.11.0-1 —
Debian 13 curl 8.11.0-1 —
Debian 12 curl 7.88.1-10+deb12u9 —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS curl 8.5.0-2ubuntu10.5 USN-7104-1
Ubuntu 22.04 LTS curl 7.81.0-1ubuntu1.19 USN-7104-1
ReleasePackageFixed inAdvisory
SLES 15 SP6 curl 8.6.0-150600.4.12.1 SUSE-SU-2024:3925-1
SLES 15 SP5 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLES 15 SP4 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLES 12 SP5 curl 8.0.1-11.98.1 SUSE-SU-2024:3927-2, SUSE-SU-2024:3927-1
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP4 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLE Micro 6.1 curl 8.12.1-slfo.1.1_1.1 SUSE-SU-2025:20239-1
SLE Micro 6.0 curl 8.6.0-4.1 SUSE-SU-2025:20083-1
SLE Micro 5.5 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLE Micro 5.4 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLE Micro 5.3 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SLE HPC 15 SP4 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SUSE Manager Server 4.3 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SUSE Manager Proxy 4.3 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SUSE Linux Enterprise Installer Updates 15 SP5 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
SUSE Linux Enterprise Installer Updates 15 SP4 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed curl 8.11.0-1.1 openSUSE-SU-2024:14476-1
openSUSE Leap 15.6 curl 8.6.0-150600.4.12.1 SUSE-SU-2024:3925-1
openSUSE Leap 15.5 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.5 curl 8.0.1-150400.5.56.1 SUSE-SU-2024:3926-1
ReleasePackageFixed inAdvisory
Alpine v3.24 curl 8.11.0-r0 —
Alpine v3.23 curl 8.11.0-r0 —
Alpine v3.22 curl 8.11.0-r0 —
Alpine v3.21 curl 8.11.0-r0 —
Alpine v3.20 curl 8.11.0-r0 —
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 curl 8.11.0-r0 —
Alpine v3.18 curl 8.11.0-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 curl +4 8.11.1-4.amzn2023.0.1 ALAS2023-2025-1043
Amazon Linux 2 curl +2 8.3.0-1.amzn2.0.8 ALAS2-2025-2724

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 cmake 3.30.3-4 —
Azure Linux 3 curl 8.8.0-4 —
Azure Linux 3 mysql 8.0.40-5 —
Azure Linux 3 tensorflow 2.16.1-7 —
Azure Linux 2 (CBL-Mariner) cmake 3.21.4-16 —
Azure Linux 2 (CBL-Mariner) curl 8.8.0-5 —
Azure Linux 2 (CBL-Mariner) mysql 8.0.40-3 —
Azure Linux 2 (CBL-Mariner) rust 1.72.0-10 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling curl 8.11.0-r0 —

Advisories 20

References