Cloudanix VulnDB

CVE-2023-27537

Medium · 5.9

CVSS

5.9

EPSS

1.9%

Published

Mar 30, 2023

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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.

Exploit Available
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

  1. Identify target application using libcurl < 8.0.0 with HSTS sharing enabled across threads
  2. Trigger or influence multi-threaded code paths that access shared HSTS cache
  3. Cause concurrent operations leading to unsynchronized free operations on HSTS data
  4. 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