CVE-2010-4344 — Exim Heap-Based Buffer Overflow Vulnerability

CVE-2010-4344

Exim MTA — string_vformat() Heap Overflow via Crafted SMTP Session Enables Unauthenticated Remote Code Execution

What is Exim?

Exim is a free, open-source Mail Transfer Agent (MTA) developed at the University of Cambridge. It is one of the most widely deployed SMTP servers in the world — used by millions of Linux and Unix servers to route and deliver email. Exim is the default MTA in Debian-based Linux distributions and is widely deployed in internet-facing mail servers, web hosting environments, and ISP infrastructure. Because Exim listens on port 25 (SMTP) and must accept connections from any SMTP client to deliver internet email, vulnerabilities in Exim's message processing code are directly and unauthenticated-reachable from anywhere on the internet. Critical Exim RCE vulnerabilities are therefore among the most dangerous class of internet-facing server exploits.

Overview

CVE-2010-4344 is a critical-severity heap-based buffer overflow vulnerability (CWE-787, CVSS 9.8) in the Exim MTA. A specially crafted SMTP session can trigger a heap overflow in the string_vformat() function in string.c, allowing an unauthenticated remote attacker to execute arbitrary code with the privileges of the Exim process (typically root or the mail user). This vulnerability was disclosed alongside its companion CVE-2010-4345 (Exim privilege escalation) and fixed in Exim 4.70. CISA added both CVEs simultaneously in March 2022, reflecting continued exploitation of legacy Exim installations.

Affected Versions

Product Vulnerable Fixed
Exim before 4.70 Affected Upgrade to Exim 4.70 or later

Technical Details

The heap-based buffer overflow (CWE-787: Out-of-Bounds Write) exists in the string_vformat() function in string.c. This function is Exim's general-purpose string formatting routine, used extensively throughout the codebase to construct log entries, SMTP response strings, and other text output.

string_vformat() writes formatted output into a buffer with a specified maximum length. The vulnerability arises from how certain format string combinations interact with the length tracking: under specific conditions involving long or specially structured format strings, the function's internal length accounting can be bypassed, allowing more data to be written into the heap buffer than it can hold.

An attacker can trigger this overflow during an SMTP session by sending a series of SMTP commands (EHLO, MAIL FROM, RCPT TO, etc.) with carefully crafted, overly long arguments. Exim processes these commands and constructs log and response strings using string_vformat(). A crafted command sequence overflows the heap buffer, corrupting adjacent heap memory. With control over the overflow content, the attacker can overwrite heap management structures or function pointers to achieve code execution.

Exim processes typically run as root (for privilege purposes related to local mail delivery), meaning successful exploitation provides root access to the mail server with no authentication required.

Discovery

Discovered by The Exploit Development Group (ExiMplode), who published a detailed advisory and proof-of-concept exploit on December 7, 2010. The advisory included a two-CVE attack chain: CVE-2010-4344 for remote code execution as the Exim process user, combined with CVE-2010-4345 for escalation to root if Exim was not already running as root. The Exim project responded rapidly, releasing Exim 4.70 with fixes for both vulnerabilities within three days.

Exploitation Context

Exim vulnerabilities are consistently high-priority targets due to Exim's ubiquity in internet-facing mail infrastructure:

  • Unauthenticated internet exposure: Exim listens on port 25 and must accept SMTP connections from any internet host to function as an MTA. This means CVE-2010-4344 is exploitable by any attacker on the internet without authentication, credentials, or prior access to the target system.
  • Root execution context: Exim's mail delivery functions require root privileges (e.g., to write to local user mailboxes), so the Exim process frequently runs as root. A successful heap overflow against an Exim 4.69 installation directly yields a root shell.
  • Two-CVE chain: The companion CVE-2010-4345 (alternate config file privilege escalation) was designed for cases where Exim ran as a non-root mail user — providing a complete root escalation chain from unauthenticated network access to full system compromise.
  • Legacy Exim in web hosting: Shared web hosting environments running Debian-based Linux with default Exim configurations were a prime target. A compromised Exim server gave attackers root access to a machine hosting potentially thousands of websites.
  • Continued exploitation post-2010: CISA's 2022 KEV addition reflects that Exim 4.69 and earlier installations were still being found and exploited over a decade after the patch — common in abandoned servers, legacy hosting environments, and unmaintained network appliances running embedded Linux.

Remediation

  1. Upgrade to Exim 4.70 or later: Install Exim 4.70 which contains the fix for both CVE-2010-4344 and CVE-2010-4345. Current Exim releases (4.97+) are strongly preferred.
  2. Run Exim as a non-root user: Configure Exim to run as a dedicated mail user rather than root to limit the impact of exploitation. Combine with CVE-2010-4345 remediation.
  3. Network firewall: Restrict SMTP access (port 25) to known sending IP ranges where feasible. For outbound-only or internal mail servers, block inbound port 25 at the perimeter.
  4. Monitor Exim logs: Review Exim logs for abnormal SMTP sessions with unusually long command arguments, which may indicate exploitation attempts.
  5. OS-level updates: On Debian/Ubuntu systems, ensure Exim is updated through the standard apt package manager, which provides security patches for the distribution-bundled Exim version.

Key Details

PropertyValue
CVE ID CVE-2010-4344
Vendor / Product Exim — Exim
NVD Published2010-12-14
NVD Last Modified2025-10-22
CVSS 3.1 Score9.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
SeverityCRITICAL
CWE CWE-787 find similar ↗
CISA KEV Added2022-03-25
CISA KEV Deadline2022-04-15
Known Ransomware Use No

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Required Action

CISA BOD 22-01 Deadline: 2022-04-15. Apply updates per vendor instructions.

Timeline

DateEvent
2010-12-07The Exploit Development Group (ExiMplode) published advisory and proof-of-concept for the Exim string_vformat() heap overflow
2010-12-10Exim 4.70 released fixing CVE-2010-4344 and CVE-2010-4345
2010-12-14CVE-2010-4344 published
2022-03-25CISA added to KEV alongside CVE-2010-4345 — both Exim vulnerabilities added simultaneously, reflecting continued exploitation of legacy Exim installations
2022-04-15CISA BOD 22-01 remediation deadline

References

ResourceType
NVD — CVE-2010-4344 Vulnerability Database
CISA KEV Catalog Entry US Government