Every CVE Search/ Get API key

CVE-2024-9681

HSTS subdomain overwrites parent cache entry

6.5 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
Low

Exploit likelihood

1.99%Up 1.9 points since Nov 7, 2024
90%50%10%1%

What each source reports

NVD Score used 6.5

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.

Record
CVE-2024-9681
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-697
Updated
2026-11-02
CVE List 5.9

HSTS subdomain overwrites parent cache entry

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.

Record
CVE-2024-9681
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
EUVDEUVD-2024-50377 5.9

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.

Record
EUVD-2024-50377
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-g337-g667-mjvw 5.9

When curl is asked to use HSTS, the expiry time for a subdomain might overwrite a parent domain's...

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.

Record
GHSA-g337-g667-mjvw
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-697
Updated
2026-11-02
OSVALPINE-CVE-2024-9681 6.5

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.

Record
ALPINE-CVE-2024-9681
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52335 6.5

CVE-2024-9681 affecting package curl for versions less than 8.8.0-5

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.

Record
AZL-52335
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
Show 29 moreShow less
OSVAZL-52347 6.5

CVE-2024-9681 affecting package curl for versions less than 8.8.0-4

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.

Record
AZL-52347
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52402 6.5

CVE-2024-9681 affecting package cmake for versions less than 3.21.4-16

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.

Record
AZL-52402
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52405 6.5

CVE-2024-9681 affecting package cmake for versions less than 3.30.3-4

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.

Record
AZL-52405
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-05
OSVAZL-52414 6.5

CVE-2024-9681 affecting package mysql for versions less than 8.0.40-5

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.

Record
AZL-52414
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52426 6.5

CVE-2024-9681 affecting package mysql for versions less than 8.0.40-3

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.

Record
AZL-52426
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52444 6.5

CVE-2024-9681 affecting package rust for versions less than 1.72.0-10

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.

Record
AZL-52444
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVAZL-52449 6.5

CVE-2024-9681 affecting package tensorflow for versions less than 2.16.1-7

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.

Record
AZL-52449
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-05
OSVBELL-CVE-2024-9681 6.5
Record
BELL-CVE-2024-9681
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSV 5.9

HSTS subdomain overwrites parent cache entry

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.

Record
CVE-2024-9681
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVDEBIAN-CVE-2024-9681 6.5

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.

Record
DEBIAN-CVE-2024-9681
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVJLSEC-2026-419 6.5

When curl is asked to use HSTS, the expiry time for a subdomain might overwrite a parent domain's...

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.

Record
JLSEC-2026-419
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
Updated
2026-11-02
OSVOESA-2024-2388 5.9

curl security update

cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.

Security Fix(es):

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.(CVE-2024-9681)

Record
OESA-2024-2388
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVOESA-2024-2389 5.9

curl security update

cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.

Security Fix(es):

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.(CVE-2024-9681)

Record
OESA-2024-2389
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVOESA-2024-2472 5.9

curl security update

cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.

Security Fix(es):

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.(CVE-2024-9681)

Record
OESA-2024-2472
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVOESA-2024-2473 5.9

curl security update

cURL is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various protocols.

Security Fix(es):

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.(CVE-2024-9681)

Record
OESA-2024-2473
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVROOT-OS-DEBIAN-11-CVE-2024-9681 5.9

CVE-2024-9681 in curl - Patched by Root

Root has patched CVE-2024-9681 in the curl package for Root:Debian:11. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-11-CVE-2024-9681
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2024-9681 6.5

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.

Record
UBUNTU-CVE-2024-9681
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVCLSA-2025-1764773365 No score

curl: Fix of CVE-2024-9681

  • CVE-2024-9681: improve HSTS subdomain handling to prevent incorrectly overriding parent domain entries
Record
CLSA-2025-1764773365
Updated
2026-11-02
OSVCLSA-2026-1767628458 No score

curl: Fix of CVE-2024-9681

  • CVE-2024-9681: improve HSTS subdomain handling to prevent incorrectly overriding parent domain entries
Record
CLSA-2026-1767628458
Updated
2026-11-02
OSVCURL-CVE-2024-9681 No score

HSTS subdomain overwrites parent cache entry

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.

Record
CURL-CVE-2024-9681
Updated
2026-11-02
OSVMGASA-2024-0360 No score

Updated curl packages fix security vulnerability

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. This flaw also affects the curl command line tool. When triggered, this is a potential minor DoS security problem when trying to use HTTPS when that no longer works or a cleartext transmission of data that was otherwise intended to possibly be protected. This update fixes the issue so subdomains cannot affect the HSTS cache of a parent domain.

Record
MGASA-2024-0360
Updated
2026-11-02
OSVopenSUSE-SU-2024:14476-1 No score

curl-8.11.0-1.1 on GA media

These are all security issues fixed in the curl-8.11.0-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:14476-1
Updated
2026-11-02
OSVSUSE-SU-2024:3925-1 No score

Security update for curl

This update for curl fixes the following issues:

  • CVE-2024-9681: Fixed HSTS subdomain overwrites parent cache entry (bsc#1232528)
Record
SUSE-SU-2024:3925-1
Updated
2026-11-02
OSVSUSE-SU-2024:3926-1 No score

Security update for curl

This update for curl fixes the following issues:

  • CVE-2024-9681: Fixed HSTS subdomain overwrites parent cache entry (bsc#1232528)
Record
SUSE-SU-2024:3926-1
Updated
2026-11-02
OSVSUSE-SU-2024:3927-1 No score

Security update for curl

This update for curl fixes the following issues:

  • CVE-2024-9681: Fixed HSTS subdomain overwrites parent cache entry (bsc#1232528)
Record
SUSE-SU-2024:3927-1
Updated
2026-11-02
OSVSUSE-SU-2024:3927-2 No score

Security update for curl

This update for curl fixes the following issues:

  • CVE-2024-9681: Fixed HSTS subdomain overwrites parent cache entry (bsc#1232528)
Record
SUSE-SU-2024:3927-2
Updated
2026-11-02
OSVSUSE-SU-2025:20083-1 No score

Security update for curl

This update for curl fixes the following issues:

  • CVE-2024-9681: Fixed HSTS subdomain overwrites parent cache entry (bsc#1232528)
Record
SUSE-SU-2025:20083-1
Updated
2026-11-02
OSVSUSE-SU-2025:20239-1 No score

Security update for curl

This update for curl fixes the following issues:

Update to 8.12.1:

  • Bugfixes:

    • asyn-thread: fix build with 'CURL_DISABLE_SOCKETPAIR'
    • asyn-thread: fix HTTPS RR crash
    • asyn-thread: fix the returned bitmask from Curl_resolver_getsock
    • asyn-thread: survive a c-ares channel set to NULL
    • cmake: always reference OpenSSL and ZLIB via imported targets
    • cmake: respect 'GNUTLS_CFLAGS' when detected via 'pkg-config'
    • cmake: respect 'GNUTLS_LIBRARY_DIRS' in 'libcurl.pc' and 'curl-config'
    • content_encoding: #error on too old zlib
    • imap: TLS upgrade fix
    • ldap: drop support for legacy Novell LDAP SDK
    • libssh2: comparison is always true because rc <= -1
    • libssh2: raise lowest supported version to 1.2.8
    • libssh: drop support for libssh older than 0.9.0
    • openssl-quic: ignore ciphers for h3
    • pop3: TLS upgrade fix
    • runtests: fix the disabling of the memory tracking
    • runtests: quote commands to support paths with spaces
    • scache: add magic checks
    • smb: silence '-Warray-bounds' with gcc 13+
    • smtp: TLS upgrade fix
    • tool_cfgable: sort struct fields by size, use bitfields for booleans
    • tool_getparam: add "TLS required" flag for each such option
    • vtls: fix multissl-init
    • wakeup_write: make sure the eventfd write sends eight bytes

Update to 8.12.0:

  • Security fixes:

    • [bsc#1234068, CVE-2024-11053] curl could leak the password used for the first host to the followed-to host under certain circumstances.
    • [bsc#1232528, CVE-2024-9681] HSTS subdomain overwrites parent cache entry
    • [bsc#1236589, CVE-2025-0665] eventfd double close
  • Changes:

    • curl: add byte range support to --variable reading from file
    • curl: make --etag-save acknowledge --create-dirs
    • getinfo: fix CURLINFO_QUEUE_TIME_T and add 'time_queue' var
    • getinfo: provide info which auth was used for HTTP and proxy
    • hyper: drop support
    • openssl: add support to use keys and certificates from PKCS#11 provider
    • QUIC: 0RTT for gnutls via CURLSSLOPT_EARLYDATA
    • vtls: feature ssls-export for SSL session im-/export
  • Bugfixes:

    • altsvc: avoid integer overflow in expire calculation
    • asyn-ares: acknowledge CURLOPT_DNS_SERVERS set to NULL
    • asyn-ares: fix memory leak
    • asyn-ares: initial HTTPS resolve support
    • asyn-thread: use c-ares to resolve HTTPS RR
    • async-thread: avoid closing eventfd twice
    • cd2nroff: do not insist on quoted <> within backticks
    • cd2nroff: support "none" as a TLS backend
    • conncache: count shutdowns against host and max limits
    • content_encoding: drop support for zlib before 1.2.0.4
    • content_encoding: namespace GZIP flag constants
    • content_encoding: put the decomp buffers into the writer structs
    • content_encoding: support use of custom libzstd memory functions
    • cookie: cap expire times to 400 days
    • cookie: parse only the exact expire date
    • curl: return error if etag options are used with multiple URLs
    • curl_multi_fdset: include the shutdown connections in the set
    • curl_sha512_256: rename symbols to the curl namespace
    • curl_url_set.md: adjust the added-in to 7.62.0
    • doh: send HTTPS RR requests for all HTTP(S) transfers
    • easy: allow connect-only handle reuse with easy_perform
    • easy: make curl_easy_perform() return error if connection still there
    • easy_lock: use Sleep(1) for thread yield on old Windows
    • ECH: update APIs to those agreed with OpenSSL maintainers
    • GnuTLS: fix 'time_appconnect' for early data
    • HTTP/2: strip TE request header
    • http2: fix data_pending check
    • http2: fix value stored to 'result' is never read
    • http: ignore invalid Retry-After times
    • http_aws_sigv4: Fix invalid compare function handling zero-length pairs
    • https-connect: start next immediately on failure
    • lib: redirect handling by protocol handler
    • multi: fix…
Record
SUSE-SU-2025:20239-1
Updated
2026-11-02
OSVUSN-7104-1 No score

curl vulnerability

It was discovered that curl could overwrite the HSTS expiry of the parent domain with the subdomain's HSTS entry. This could lead to curl switching back to insecure HTTP earlier than otherwise intended, resulting in information exposure.

Record
USN-7104-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
curl
Alpine:v3.18
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.19
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.20
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.21
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.22
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.23
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Alpine:v3.24
7.74.0 up to 8.11.0-r0
8.11.0-r0
curl
Azure Linux:2
before 8.8.0-5
8.8.0-5
curl
Azure Linux:3
before 8.8.0-4
8.8.0-4
cmake
Azure Linux:2
before 3.21.4-16
3.21.4-16
Show 53 moreShow less
Affected packages
PackageAffectedFixed
cmake
Azure Linux:3
before 3.30.3-4
3.30.3-4
mysql
Azure Linux:3
before 8.0.40-5
8.0.40-5
mysql
Azure Linux:2
before 8.0.40-3
8.0.40-3
rust
Azure Linux:2
before 1.72.0-10
1.72.0-10
tensorflow
Azure Linux:3
before 2.16.1-7
2.16.1-7
curl
Alpaquita:23
8.9.1-r0 up to 8.9.1-r1
8.9.1-r1
curl
Alpaquita:stream
8.10.1-r0 up to 8.11.0-r1
8.11.0-r1
curl
BellSoft Hardened Containers:stream
8.10.1-r0 up to 8.11.0-r1
8.11.0-r1
curl
TuxCare:AlmaLinux:9.2
before 7.76.1-23.el9_2.4.tuxcare.els5
7.76.1-23.el9_2.4.tuxcare.els5
curl-minimal
TuxCare:AlmaLinux:9.2
before 7.76.1-23.el9_2.4.tuxcare.els5
7.76.1-23.el9_2.4.tuxcare.els5
libcurl
TuxCare:AlmaLinux:9.2
before 7.76.1-23.el9_2.4.tuxcare.els5
7.76.1-23.el9_2.4.tuxcare.els5
libcurl-devel
TuxCare:AlmaLinux:9.2
before 7.76.1-23.el9_2.4.tuxcare.els5
7.76.1-23.el9_2.4.tuxcare.els5
libcurl-minimal
TuxCare:AlmaLinux:9.2
before 7.76.1-23.el9_2.4.tuxcare.els5
7.76.1-23.el9_2.4.tuxcare.els5
curl
TuxCare:AlmaLinux:9.6
before 7.76.1-31.el9_6.1.tuxcare.els2
7.76.1-31.el9_6.1.tuxcare.els2
curl-minimal
TuxCare:AlmaLinux:9.6
before 7.76.1-31.el9_6.1.tuxcare.els2
7.76.1-31.el9_6.1.tuxcare.els2
libcurl
TuxCare:AlmaLinux:9.6
before 7.76.1-31.el9_6.1.tuxcare.els2
7.76.1-31.el9_6.1.tuxcare.els2
libcurl-devel
TuxCare:AlmaLinux:9.6
before 7.76.1-31.el9_6.1.tuxcare.els2
7.76.1-31.el9_6.1.tuxcare.els2
libcurl-minimal
TuxCare:AlmaLinux:9.6
before 7.76.1-31.el9_6.1.tuxcare.els2
7.76.1-31.el9_6.1.tuxcare.els2
curl
Debian:12
before 7.88.1-10+deb12u9, plus listed versions
7.88.1-107.88.1-10+deb12u17.88.1-10+deb12u1~bpo11+17.88.1-10+deb12u27.88.1-10+deb12u3
Show 8 moreShow less
7.88.1-10+deb12u3~bpo11+17.88.1-10+deb12u47.88.1-10+deb12u57.88.1-10+deb12u5~bpo11+17.88.1-10+deb12u67.88.1-10+deb12u6~bpo11+17.88.1-10+deb12u77.88.1-10+deb12u8
7.88.1-10+deb12u9
curl
Debian:13
before 8.11.0-1
8.11.0-1
curl
Debian:14
before 8.11.0-1
8.11.0-1
CURL_jll
Julia
before 8.11.0+0
8.11.0+0
LibCURL_jll
Julia
7.81.0+0 up to 8.11.0+0
8.11.0+0
curl
Mageia:9
before 7.88.1-4.4.mga9
7.88.1-4.4.mga9
curl
openEuler:22.03-LTS-SP1
before 7.79.1-33.oe2203sp1
7.79.1-33.oe2203sp1
curl
openEuler:24.03-LTS
before 8.4.0-11.oe2403
8.4.0-11.oe2403
curl
openEuler:22.03-LTS-SP4
before 7.79.1-33.oe2203sp4
7.79.1-33.oe2203sp4
curl
openEuler:22.03-LTS-SP3
before 7.79.1-33.oe2203sp3
7.79.1-33.oe2203sp3
curl
Root:Debian:11
before 7.74.0-1.3+deb11u16.root.io.13
7.74.0-1.3+deb11u16.root.io.137.74.0-1.3+deb11u16.aikido.187.74.0-1.3+deb11u16.aikido.197.74.0-1.3+deb11u16.root.io.177.74.0-1.3+deb11u16.root.io.157.74.0-1.3+deb11u16.root.io.167.74.0-1.3+deb11u16.root.io.14
rootio-curl
Root:Debian:11
before 7.74.0-1.3+deb11u16.root.io.13
7.74.0-1.3+deb11u16.root.io.137.74.0-1.3+deb11u16.aikido.187.74.0-1.3+deb11u16.aikido.197.74.0-1.3+deb11u16.root.io.177.74.0-1.3+deb11u16.root.io.157.74.0-1.3+deb11u16.root.io.167.74.0-1.3+deb11u16.root.io.14
curl
SUSE:Linux Enterprise Module for Basesystem 15 SP6
before 8.6.0-150600.4.12.1
8.6.0-150600.4.12.1
curl
openSUSE:Leap 15.6
before 8.6.0-150600.4.12.1
8.6.0-150600.4.12.1
curl
SUSE:Linux Enterprise Installer Updates 15 SP4
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Installer Updates 15 SP5
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Micro 5.3
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Micro 5.4
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Micro 5.5
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Module for Basesystem 15 SP5
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Server 15 SP4-LTSS
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Server for SAP Applications 15 SP4
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Manager Proxy 4.3
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Manager Server 4.3
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
openSUSE:Leap Micro 5.5
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
openSUSE:Leap 15.5
before 8.0.1-150400.5.56.1
8.0.1-150400.5.56.1
curl
SUSE:Linux Enterprise Server 12 SP5-LTSS
before 8.0.1-11.98.1
8.0.1-11.98.1
curl
SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5
before 8.0.1-11.98.1
8.0.1-11.98.1
curl
SUSE:Linux Micro 6.0
before 8.6.0-4.1
8.6.0-4.1
curl
SUSE:Linux Micro 6.1
From an advisory covering 4 CVEs
before 8.12.1-slfo.1.1_1.1
8.12.1-slfo.1.1_1.1
curl
Ubuntu:22.04:LTS
before 7.81.0-1ubuntu1.19, plus listed versions
7.74.0-1.3ubuntu27.74.0-1.3ubuntu37.80.0-37.81.0-17.81.0-1ubuntu1.1
Show 14 moreShow less
7.81.0-1ubuntu1.27.81.0-1ubuntu1.37.81.0-1ubuntu1.47.81.0-1ubuntu1.67.81.0-1ubuntu1.77.81.0-1ubuntu1.87.81.0-1ubuntu1.107.81.0-1ubuntu1.117.81.0-1ubuntu1.137.81.0-1ubuntu1.147.81.0-1ubuntu1.157.81.0-1ubuntu1.167.81.0-1ubuntu1.177.81.0-1ubuntu1.18
7.81.0-1ubuntu1.19
curl
Ubuntu:24.04:LTS
before 8.5.0-2ubuntu10.5, plus listed versions
8.2.1-1ubuntu38.2.1-1ubuntu3.18.4.0-2ubuntu18.5.0-2ubuntu18.5.0-2ubuntu2
Show 7 moreShow less
8.5.0-2ubuntu88.5.0-2ubuntu98.5.0-2ubuntu108.5.0-2ubuntu10.18.5.0-2ubuntu10.28.5.0-2ubuntu10.38.5.0-2ubuntu10.4
8.5.0-2ubuntu10.5
curl
openSUSE:Tumbleweed
before 8.11.0-1.1
8.11.0-1.1

History

History
RecordedChangedSources
affected
factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2024-9681 is a medium vulnerability (CVSS 6.5) in Curl, published November 6, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.99%, the 80th percentile. Fixed in curl 8.11.0-r0.

References

Show 39 moreShow less
This page doesn't list everything

Left out here: the rest of 1 source description. The JSON record has them.

MoveEnter Open