CVE-2023-27533
High · 8.8CVSS
8.8
EPSS
2.2%
Published
Mar 30, 2023
CISA due date
—
Cloudanix analysis
A problem in a common data-transfer tool could let attackers run their own commands on computers if an application passes untrusted user input during certain network connections.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw stems from insufficient input validation in curl's TELNET protocol handler prior to version 8.0, allowing crafted usernames and telnet options supplied during negotiation to be passed without scrubbing, enabling injection that can result in arbitrary command execution when user-controlled data reaches the library.
Why it matters to the business
Organizations relying on applications that use curl for network transfers face risk of remote code execution on affected systems, potentially leading to data breaches, service disruption, and the need for urgent patching across numerous downstream products including package managers, storage appliances, and log forwarders.
How an attack unfolds
An attacker supplies maliciously formatted username and telnet option strings through an application that accepts user input and forwards it to curl's TELNET code path; during the protocol negotiation phase the unsanitized content is processed, allowing the attacker to influence command execution or option handling on the target system.
How to fix it
Upgrade all instances of curl to version 8.0 or later; rebuild or reinstall dependent packages (including those from Fedora, NetApp storage products, and Splunk Universal Forwarder) that bundle vulnerable curl versions; where immediate upgrade is not possible, restrict use of TELNET protocol handlers and sanitize any user input before it reaches curl.
How to confirm the fix worked
Run 'curl --version' on all hosts and confirm the reported version is 8.0 or newer; perform regression testing by supplying known-malicious username and option strings through affected applications and verifying they are rejected; scan package inventories for listed affected products and confirm updated builds are deployed.
Typical attack path
- Identify an application or script that invokes curl with TELNET URLs and accepts user-supplied strings for usernames or options
- Craft a payload containing injected telnet options or command sequences
- Deliver the payload via the application's normal input channel
- Trigger the curl TELNET connection so the library performs negotiation with the attacker-controlled data
- Achieve arbitrary code execution or unintended option negotiation on the host running curl
How to detect it
Review application and system logs for curl TELNET connections that contain unusual usernames or option strings; inspect process command lines and network traffic for telnet:// URLs with non-standard parameters; correlate any observed code-execution artifacts with curl process ancestry.
What your security team should do
- Prioritize patching curl to 8.0+ on all systems within the next 30 days given public exploit availability
- Inventory applications and scripts that invoke curl with TELNET URLs and remove or replace that protocol usage
- Implement input sanitization or whitelist checks for any user data passed to curl
- Update build pipelines and dependency manifests to enforce curl >= 8.0
- Monitor vendor advisories for the listed affected products and apply their respective fixed releases
The record
A vulnerability in input validation exists in curl <8.0 during communication using the TELNET protocol may allow an attacker to pass on maliciously crafted user name and "telnet options" during server negotiation. The lack of proper input scrubbing allows an attacker to send content or perform option negotiation without the application's intent. This vulnerability could be exploited if an application allows user input, thereby enabling attackers to execute arbitrary code on the system.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | curl | 0 | 7.76.1-26.el9 |
| AlmaLinux:9 | curl-minimal | 0 | 7.76.1-26.el9 |
| AlmaLinux:9 | libcurl | 0 | 7.76.1-26.el9 |
| AlmaLinux:9 | libcurl-devel | 0 | 7.76.1-26.el9 |
| AlmaLinux:9 | libcurl-minimal | 0 | 7.76.1-26.el9 |
| 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:10 | curl | 0 | 7.64.0-4+deb10u6 |
| Debian:11 | curl | 0 | 7.74.0-1.3+deb11u8 |
| 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 |
| Red Hat:enterprise_linux:9::appstream | curl | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | curl-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | curl-debugsource | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | curl-minimal | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | curl-minimal-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | libcurl | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | libcurl-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | libcurl-devel | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | libcurl-minimal | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::appstream | libcurl-minimal-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | curl | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | curl-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | curl-debugsource | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | curl-minimal | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | curl-minimal-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | libcurl | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | libcurl-debuginfo | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | libcurl-devel | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | libcurl-minimal | 0 | 0:7.76.1-26.el9 |
| Red Hat:enterprise_linux:9::baseos | libcurl-minimal-debuginfo | 0 | 0:7.76.1-26.el9 |
| 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:Enterprise Storage 6 | curl | 0 | 7.60.0-150000.51.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | curl | 0 | 7.60.0-150000.51.1 |
| SUSE:Linux Enterprise Micro 5.1 | curl | 0 | 7.66.0-150200.4.52.1 |
| SUSE:Linux Enterprise Micro 5.2 | curl | 0 | 7.66.0-150200.4.52.1 |
| SUSE:Linux Enterprise Micro 5.3 | curl | 0 | 7.79.1-150400.5.18.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | curl | 0 | 7.79.1-150400.5.18.1 |
| SUSE:Linux Enterprise Real Time 15 SP3 | curl | 0 | 7.66.0-150200.4.52.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 | 7.60.0-11.60.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | curl | 0 | 7.60.0-150000.51.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 | 7.60.0-11.60.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | curl | 0 | 7.60.0-150000.51.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | curl | 0 | 7.60.0-11.60.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:18.04:LTS | curl | 0 | 7.58.0-2ubuntu3.24 |
| Ubuntu:20.04:LTS | curl | 0 | 7.68.0-1ubuntu2.18 |
| Ubuntu:22.04:LTS | curl | 0 | 7.81.0-1ubuntu1.10 |
| Ubuntu:Pro:14.04:LTS | curl | 0 | 7.35.0-1ubuntu2.20+esm15 |
| Ubuntu:Pro:16.04:LTS | curl | 0 | 7.47.0-1ubuntu2.19+esm8 |
| openSUSE:Leap 15.4 | curl | 0 | 7.79.1-150400.5.18.1 |
| openSUSE:Leap Micro 5.3 | curl | 0 | 7.79.1-150400.5.18.1 |
| openSUSE:Tumbleweed | curl | 0 | 8.0.1-1.1 |
Related vulnerabilities
- CVE-2023-46218 This flaw allows a malicious HTTP server to set "super cookies" in curl that are then… Also affects curl
- CVE-2023-38545 This flaw makes curl overflow a heap based buffer in the SOCKS5 proxy handshake. Also affects curl
- CVE-2023-38546 This flaw allows an attacker to insert cookies at will into a running program using… Also affects curl
- CVE-2023-28322 An information disclosure vulnerability exists in curl <v8.1.0 when doing HTTP(S)… Also affects curl
- CVE-2022-32221 When doing HTTP(S) transfers, libcurl might erroneously use the read callback… Also affects curl
- CVE-2022-27775 An information disclosure vulnerability exists in curl 7.65.0 to 7.82.0 are vulnerable… Also affects curl
- CVE-2023-23915 A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.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