Cloudanix VulnDB

CVE-2023-23915

Medium · 6.5

CVSS

6.5

EPSS

0.9%

Published

Feb 23, 2023

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in the curl tool can cause it to send information over ordinary web connections instead of secure ones when several downloads happen at the same time, potentially letting eavesdroppers see data that should have been protected.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Data Exposure
Component
Library
Class
Information Disclosure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

HSTS cache file overwrite during parallel transfers in curl <7.88.0 causes subsequent HTTP requests to a previously HSTS-protected host to remain unupgraded, transmitting data in cleartext.

Why it matters to the business

Organizations using curl for automated or concurrent transfers risk unintended exposure of credentials, tokens, or other sensitive data over unencrypted channels, increasing regulatory and reputational exposure especially in high-volume scripting environments.

How an attack unfolds

An attacker positions themselves to observe traffic and triggers an application to issue multiple parallel curl transfers; the resulting HSTS cache corruption allows a later HTTP request to the same host to proceed without HTTPS upgrade, enabling passive interception.

How to fix it

Upgrade curl to the version containing commit 3027611ca6d4cc5510d2d0fccc3e5a074e09a2fb (curl 7.88.0 or newer). Rebuild any statically linked binaries and retest parallel transfer workloads. Where immediate upgrade is impossible, serialize transfers or disable HSTS temporarily.

How to confirm the fix worked

Confirm curl version reports 7.88.0 or later; execute a test with multiple parallel transfers to an HSTS host followed by an HTTP request and verify the request is upgraded to HTTPS.

Typical attack path

  1. Identify or influence an application or script that performs concurrent curl transfers to multiple hosts including one that uses HSTS.
  2. Cause the application to issue parallel requests so that the final HSTS cache write overwrites entries for the target host.
  3. Observe or force a subsequent HTTP-only request to the same hostname.
  4. Intercept the resulting cleartext traffic to capture sensitive information.

How to detect it

Review application logs for sequences of parallel curl transfers followed by HTTP requests to previously protected hosts; correlate with network captures showing unexpected HTTP instead of HTTPS to HSTS domains.

What your security team should do

  • Prioritize upgrade of all curl instances to 7.88.0+ within 30 days given the 1331 days since disclosure.
  • Audit scripts and libraries performing concurrent transfers for HSTS reliance.
  • Add curl version checks to build pipelines and container images.
  • Monitor EPSS trend (currently low but rising) and re-evaluate if new exploit code appears.

The record

A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause HSTS functionality to behave incorrectly when multiple URLs are requested in parallel. Using its HSTS support, curl can be instructed to use HTTPS instead of using an insecure clear-text HTTP step even when HTTP is provided in the URL. This HSTS mechanism would however surprisingly fail when multiple transfers are done in parallel as the HSTS cache file gets overwritten by the most recentlycompleted transfer. A later HTTP-only transfer to the earlier host name would then *not* get upgraded properly to HSTS.

Affected packages

Ecosystem Package Introduced Fixed
Alpine:v3.14 curl 0 7.79.1-r5
Alpine:v3.15 curl 0 7.80.0-r6
Alpine:v3.16 curl 0 7.83.1-r6
Alpine:v3.17 curl 0 7.87.0-r2
Alpine:v3.18 curl 0 7.88.0-r0
Alpine:v3.19 curl 0 7.88.0-r0
Alpine:v3.20 curl 0 7.88.0-r0
Alpine:v3.21 curl 0 7.88.0-r0
Alpine:v3.22 curl 0 7.88.0-r0
Debian:11 curl 0 No fix
Debian:12 curl 0 7.88.1-1
Debian:13 curl 0 7.88.1-1
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-debuginfo 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-devel 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-ldap 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-mysql 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-nss 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-odbc 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-openssl 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-pgsql 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-util-sqlite 0 0:1.6.1-101.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-curl 0 0:8.0.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-curl-debuginfo 0 0:8.0.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-debuginfo 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-devel 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-manual 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-selinux 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-tools 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-libcurl 0 0:8.0.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-libcurl-devel 0 0:8.0.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_ldap 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_proxy_html 0 1:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_session 0 0:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_ssl 0 1:2.4.51-39.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl-debuginfo 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl-devel 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl-libs 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl-perl 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-openssl-static 0 1:1.1.1k-14.el7jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-devel 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-ldap 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-ldap-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-mysql 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-mysql-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-nss 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-nss-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-odbc 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-odbc-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-openssl 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-openssl-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-pgsql 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-pgsql-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-sqlite 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-util-sqlite-debuginfo 0 0:1.6.1-101.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-curl 0 0:8.0.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-curl-debuginfo 0 0:8.0.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-debuginfo 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-devel 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-manual 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-selinux 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-tools 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-tools-debuginfo 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl 0 0:8.0.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl-debuginfo 0 0:8.0.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl-devel 0 0:8.0.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ldap 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ldap-debuginfo 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_proxy_html 0 1:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_proxy_html-debuginfo 0 1:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_session 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_session-debuginfo 0 0:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ssl 0 1:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ssl-debuginfo 0 1:2.4.51-39.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-debuginfo 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-devel 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-libs 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-libs-debuginfo 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-perl 0 1:1.1.1k-14.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-openssl-static 0 1:1.1.1k-14.el8jbcs
SUSE:Linux Enterprise Micro 5.3 curl 0 7.79.1-150400.5.15.1
SUSE:Linux Enterprise Module for Basesystem 15 SP4 curl 0 7.79.1-150400.5.15.1
Ubuntu:18.04:LTS curl 0 7.58.0-2ubuntu3.23
Ubuntu:20.04:LTS curl 0 7.68.0-1ubuntu2.16
Ubuntu:22.04:LTS curl 0 7.81.0-1ubuntu1.8
openSUSE:Leap 15.4 curl 0 7.79.1-150400.5.15.1
openSUSE:Leap Micro 5.3 curl 0 7.79.1-150400.5.15.1
openSUSE:Tumbleweed curl 0 7.88.1-1.1

Related vulnerabilities