CVE-2024-9681

HSTS subdomain overwrites parent cache entry

Medium · published November 6, 2024

CVSS v3.1
5.9
EPSS
2%
Percentile
80.5
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
5.9 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS v4.0
Not supplied
EPSS
0.01987 · 80.5th percentile
Published
2024-11-06T07:47Z
EPSS history
Timeline
  • 06 NOV 07:47Z
    HSTS subdomain overwrites parent cache entry
    cvelistv5