CVE-2023-27537
Medium · 5.9CVSS
5.9
EPSS
1.9%
Published
Mar 30, 2023
CISA due date
—
Cloudanix analysis
A flaw in how some software shares internet security settings across different tasks at the same time can cause programs to crash unexpectedly if not updated.
- Exploitation
- Other
- Attacker needs
- None
- Complexity
- High
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Double-free or use-after-free in libcurl when HSTS data is shared across separate handles in multi-threaded contexts without synchronization primitives, leading to memory corruption and potential denial of service.
Why it matters to the business
Applications relying on affected libcurl versions in multi-threaded environments may experience crashes or instability; although the issue has been public for years with available exploits, low exploitation probability means limited immediate operational disruption but requires prioritized patching to avoid future availability issues.
How an attack unfolds
An attacker crafts conditions to trigger concurrent access to shared HSTS data structures in a multi-threaded application using vulnerable libcurl, causing the library to perform a double-free or use-after-free due to missing thread locks, resulting in memory corruption that can crash the process.
How to fix it
Upgrade libcurl to version 8.0.0 or later; for the affected drush (Bitnami) package, update to version 9.2.15 or newer. Disable HSTS sharing across threads if immediate upgrade is not feasible, and review multi-threaded curl usage patterns.
How to confirm the fix worked
Verify installed libcurl version is at least 8.0.0 and drush (Bitnami) is at least 9.2.15; test multi-threaded scenarios involving HSTS to confirm absence of crashes under concurrent access; review changelogs for mutex additions in HSTS handling.
Typical attack path
- Identify target application using libcurl < 8.0.0 with HSTS sharing enabled across threads
- Trigger or influence multi-threaded code paths that access shared HSTS cache
- Cause concurrent operations leading to unsynchronized free operations on HSTS data
- Exploit resulting memory state for denial of service via process crash
How to detect it
Review application logs for segmentation faults or memory errors during curl operations involving HSTS; search process dumps or crash reports for patterns related to HSTS data structures; monitor for unusual thread contention or repeated connection failures in multi-threaded services.
What your security team should do
- Immediately upgrade all instances of drush (Bitnami) to 9.2.15 and libcurl to 8.0.0+ given exploit availability despite low EPSS
- Audit applications for multi-threaded libcurl usage with shared handles and add thread synchronization if upgrades delayed
- Monitor for application crashes correlated with HSTS operations as a temporary detection measure
- Prioritize patching in environments with high thread concurrency even though KEV status is false
The record
A double free vulnerability exists in libcurl <8.0.0 when sharing HSTS data between separate "handles". This sharing was introduced without considerations for do this sharing across separate threads but there was no indication of this fact in the documentation. Due to missing mutexes or thread locks, two threads sharing the same HSTS data could end up doing a double-free or use-after-free.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.14 | curl | 0 | 8.0.1-r0 |
| Alpine:v3.15 | curl | 0 | 8.0.1-r0 |
| Alpine:v3.16 | curl | 0 | 8.0.1-r0 |
| Alpine:v3.17 | curl | 0 | 7.88.1-r1 |
| Alpine:v3.18 | curl | 0 | 8.0.0-r0 |
| Alpine:v3.19 | curl | 0 | 8.0.0-r0 |
| Alpine:v3.20 | curl | 0 | 8.0.0-r0 |
| Alpine:v3.21 | curl | 0 | 8.0.0-r0 |
| Alpine:v3.22 | curl | 0 | 8.0.0-r0 |
| Debian:12 | curl | 0 | 7.88.1-7 |
| Debian:13 | curl | 0 | 7.88.1-7 |
| Mageia:8 | curl | 0 | 7.74.0-1.13.mga8 |
| Mageia:9 | curl | 0 | 7.88.1-3.1.mga9 |
| conan | libcurl | 7.88.0 | No fix |
| openSUSE:Tumbleweed | curl | 0 | 8.0.1-1.1 |
Related vulnerabilities
- CVE-2023-27534 A path traversal vulnerability exists in curl <8.0.0 SFTP implementation causes the tilde… Also affects curl
- CVE-2023-27536 An authentication bypass vulnerability exists libcurl <8.0.0 in the connection reuse… Also affects curl
- CVE-2023-27535 An authentication bypass vulnerability exists in libcurl <8.0.0 in the FTP connection… Also affects curl
- CVE-2023-27533 A vulnerability in input validation exists in curl <8.0 during communication using the… Also affects curl
- CVE-2023-23915 A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0… Also affects curl
- CVE-2023-23916 An allocation of resources without limits or throttling vulnerability exists in curl… Also affects curl
- CVE-2022-43552 A use after free vulnerability exists in curl <7.87.0. Also affects curl
- CVE-2022-43551 A vulnerability exists in curl <7.87.0 HSTS check that could be bypassed to trick it to… Also affects curl