Cloudanix VulnDB

CVE-2023-28321

Medium · 5.9

CVSS

5.9

EPSS

1.8%

Published

May 26, 2023

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A problem in the curl tool lets attackers who control certain servers send hidden commands that could steal or tamper with data being transferred.

Exploit Available
Exploitation
Other
Attacker needs
Other
Complexity
Moderate
Impact
Other
Component
Other
Class
Other
Remediation
Other
Effort
Other
Patch risk
Other

What it actually does

A flaw in curl's handling of TELNET protocol responses allows a malicious server to inject arbitrary IAC command sequences during FTP passive mode negotiations, causing unintended control commands to be sent over the connection.

Why it matters to the business

Attackers can manipulate connections made by curl-based clients or tools, potentially leading to data exfiltration, command execution on affected systems, or disruption of automated transfers in scripts and applications that rely on curl for network operations. The high number of downstream dependents increases exposure across many environments.

How an attack unfolds

An attacker sets up a malicious FTP server that responds to PASV commands with crafted data containing TELNET IAC sequences. When a vulnerable curl client connects and negotiates the data channel, the injected commands are processed, allowing the attacker to influence the session behavior or exfiltrate information.

How to fix it

Upgrade curl to the version containing commit a9f8fe28481fef7c28d85b4a12a3a35521408eaf or later. Rebuild any dependent applications and libraries against the patched version. Disable TELNET or FTP features if unused.

How to confirm the fix worked

Verify the installed curl binary or library reports a version built after commit a9f8fe28481fef7c28d85b4a12a3a35521408eaf. Test FTP passive transfers against a server sending IAC sequences and confirm no unexpected commands are executed.

Typical attack path

  1. Attacker hosts a malicious FTP server responding to PASV with IAC-injected payloads
  2. Victim application or script uses vulnerable curl to connect to the attacker-controlled server
  3. curl processes the crafted response and injects TELNET commands into the control channel
  4. Attacker observes or influences the resulting session to achieve objectives such as data theft or further compromise

How to detect it

Inspect network logs and application traces for FTP sessions involving unexpected TELNET IAC byte sequences (0xFF followed by command bytes) in PASV responses. Correlate with curl process executions connecting to untrusted endpoints.

  • IAC byte sequences (0xFF) embedded in FTP 227 responses
  • curl process connecting to attacker-controlled FTP servers during data channel setup

What your security team should do

  • Prioritize patching all curl instances to the fixed commit within the next 30 days due to public exploit availability
  • Scan source code and dependency manifests for direct or transitive use of vulnerable curl versions
  • Update build pipelines and container images to enforce the patched curl version
  • Review and restrict use of FTP/TELNET protocols in production workloads where possible

The record

An improper certificate validation vulnerability exists in curl <v8.1.0 in the way it supports matching of wildcard patterns when listed as "Subject Alternative Name" in TLS server certificates. curl can be built to use its own name matching function for TLS rather than one provided by a TLS library. This private wildcard matching function would match IDN (International Domain Name) hosts incorrectly and could as a result accept patterns that otherwise should mismatch. IDN hostnames are converted to puny code before used for certificate checks. Puny coded names always start with `xn--` and should not be allowed to pattern match, but the wildcard check in curl could still check for `x*`, which would match even though the IDN name most likely contained nothing even resembling an `x`.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 curl 0 7.61.1-30.el8_8.3
AlmaLinux:8 libcurl 0 7.61.1-30.el8_8.3
AlmaLinux:8 libcurl-devel 0 7.61.1-30.el8_8.3
AlmaLinux:8 libcurl-minimal 0 7.61.1-30.el8_8.3
AlmaLinux:9 curl 0 7.76.1-23.el9_2.2
AlmaLinux:9 curl-minimal 0 7.76.1-23.el9_2.2
AlmaLinux:9 libcurl 0 7.76.1-23.el9_2.2
AlmaLinux:9 libcurl-devel 0 7.76.1-23.el9_2.2
AlmaLinux:9 libcurl-minimal 0 7.76.1-23.el9_2.2
Alpine:v3.15 curl 0 8.1.0-r0
Alpine:v3.16 curl 0 8.1.0-r0
Alpine:v3.17 curl 0 8.1.0-r0
Alpine:v3.18 curl 0 8.1.0-r0
Alpine:v3.19 curl 0 8.1.0-r0
Alpine:v3.20 curl 0 8.1.0-r0
Alpine:v3.21 curl 0 8.1.0-r0
Alpine:v3.22 curl 0 8.1.0-r0
Debian:10 curl 0 7.64.0-4+deb10u7
Debian:11 curl 0 7.74.0-1.3+deb11u9
Debian:12 curl 0 7.88.1-10
Debian:13 curl 0 7.88.1-10
Mageia:8 curl 0 7.74.0-1.13.mga8
Mageia:9 curl 0 7.88.1-3.1.mga9
Red Hat:enterprise_linux:8::baseos curl 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos curl-debuginfo 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos curl-debugsource 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos curl-minimal-debuginfo 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos libcurl 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos libcurl-debuginfo 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos libcurl-devel 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos libcurl-minimal 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:8::baseos libcurl-minimal-debuginfo 0 0:7.61.1-30.el8_8.3
Red Hat:enterprise_linux:9::appstream curl 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream curl-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream curl-debugsource 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream curl-minimal 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream curl-minimal-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream libcurl 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream libcurl-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream libcurl-devel 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream libcurl-minimal 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::appstream libcurl-minimal-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos curl 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos curl-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos curl-debugsource 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos curl-minimal 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos curl-minimal-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos libcurl 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos libcurl-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos libcurl-devel 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos libcurl-minimal 0 0:7.76.1-23.el9_2.2
Red Hat:enterprise_linux:9::baseos libcurl-minimal-debuginfo 0 0:7.76.1-23.el9_2.2
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr 0 0:1.7.0-8.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-debuginfo 0 0:1.7.0-8.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-apr-devel 0 0:1.7.0-8.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-curl 0 0:8.2.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-curl-debuginfo 0 0:8.2.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-debuginfo 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-devel 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-manual 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-selinux 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-httpd-tools 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-libcurl 0 0:8.2.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-libcurl-devel 0 0:8.2.1-1.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_ldap 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_proxy_html 0 1:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_security 0 0:2.9.3-29.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_security-debuginfo 0 0:2.9.3-29.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_session 0 0:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el7 jbcs-httpd24-mod_ssl 0 1:2.4.57-5.el7jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr 0 0:1.7.0-8.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-debuginfo 0 0:1.7.0-8.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-apr-devel 0 0:1.7.0-8.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-curl 0 0:8.2.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-curl-debuginfo 0 0:8.2.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-debuginfo 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-devel 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-manual 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-selinux 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-tools 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-httpd-tools-debuginfo 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl 0 0:8.2.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl-debuginfo 0 0:8.2.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-libcurl-devel 0 0:8.2.1-1.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ldap 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ldap-debuginfo 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_proxy_html 0 1:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_proxy_html-debuginfo 0 1:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_security 0 0:2.9.3-29.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_security-debuginfo 0 0:2.9.3-29.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_session 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_session-debuginfo 0 0:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ssl 0 1:2.4.57-5.el8jbcs
Red Hat:jboss_core_services:1::el8 jbcs-httpd24-mod_ssl-debuginfo 0 1:2.4.57-5.el8jbcs
Red Hat:rhel_eus:8.6::baseos curl 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos curl-debuginfo 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos curl-debugsource 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos curl-minimal-debuginfo 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos libcurl 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos libcurl-debuginfo 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos libcurl-devel 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos libcurl-minimal 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:8.6::baseos libcurl-minimal-debuginfo 0 0:7.61.1-22.el8_6.9
Red Hat:rhel_eus:9.0::appstream curl 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream curl-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream curl-debugsource 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream curl-minimal 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream curl-minimal-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream libcurl 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream libcurl-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream libcurl-devel 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream libcurl-minimal 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::appstream libcurl-minimal-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos curl 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos curl-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos curl-debugsource 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos curl-minimal 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos curl-minimal-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos libcurl 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos libcurl-debuginfo 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos libcurl-devel 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos libcurl-minimal 0 0:7.76.1-14.el9_0.7
Red Hat:rhel_eus:9.0::baseos libcurl-minimal-debuginfo 0 0:7.76.1-14.el9_0.7
Rocky Linux:8 curl 0 0:7.61.1-30.el8_8.3
SUSE:Enterprise Storage 6 curl 0 7.60.0-150000.51.1
SUSE:Enterprise Storage 7 curl 0 7.66.0-150200.4.57.1
SUSE:Enterprise Storage 7.1 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS curl 0 7.60.0-150000.51.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Micro 5.1 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Micro 5.2 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Micro 5.3 curl 0 8.0.1-150400.5.23.1
SUSE:Linux Enterprise Micro 5.4 curl 0 8.0.1-150400.5.23.1
SUSE:Linux Enterprise Module for Basesystem 15 SP4 curl 0 8.0.1-150400.5.23.1
SUSE:Linux Enterprise Real Time 15 SP3 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Server 12 SP2-BCL curl 0 7.37.0-37.98.1
SUSE:Linux Enterprise Server 12 SP4-ESPOS curl 0 7.60.0-4.56.1
SUSE:Linux Enterprise Server 12 SP4-LTSS curl 0 7.60.0-4.56.1
SUSE:Linux Enterprise Server 12 SP5 curl 0 8.0.1-11.65.2
SUSE:Linux Enterprise Server 15 SP1-LTSS curl 0 7.60.0-150000.51.1
SUSE:Linux Enterprise Server 15 SP2-LTSS curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Server 15 SP3-LTSS curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 curl 0 7.60.0-4.56.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 curl 0 8.0.1-11.65.2
SUSE:Linux Enterprise Server for SAP Applications 15 SP1 curl 0 7.60.0-150000.51.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 curl 0 7.66.0-150200.4.57.1
SUSE:Linux Enterprise Software Development Kit 12 SP5 curl 0 8.0.1-11.65.2
SUSE:Manager Proxy 4.2 curl 0 7.66.0-150200.4.57.1
SUSE:Manager Server 4.2 curl 0 7.66.0-150200.4.57.1
SUSE:OpenStack Cloud 9 curl 0 7.60.0-4.56.1
SUSE:OpenStack Cloud Crowbar 9 curl 0 7.60.0-4.56.1
Ubuntu:20.04:LTS curl 0 7.68.0-1ubuntu2.19
Ubuntu:22.04:LTS curl 0 7.81.0-1ubuntu1.11
Ubuntu:Pro:14.04:LTS curl 0 7.35.0-1ubuntu2.20+esm16
Ubuntu:Pro:16.04:LTS curl 0 7.47.0-1ubuntu2.19+esm9
Ubuntu:Pro:18.04:LTS curl 0 7.58.0-2ubuntu3.24+esm1
openSUSE:Leap 15.4 curl 0 8.0.1-150400.5.23.1
openSUSE:Leap 15.5 curl 0 8.0.1-150400.5.23.1
openSUSE:Leap Micro 5.3 curl 0 8.0.1-150400.5.23.1
openSUSE:Tumbleweed curl 0 8.1.0-1.1

Related vulnerabilities