CVE-2024-23184
Medium · 5.0CVSS
5.0
EPSS
0.8%
Published
Sep 10, 2024
CISA due date
—
Cloudanix analysis
Attackers can send specially made emails that overload an email server's processor and knock email services offline.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Denial of service
- Remediation
- Workaround Only
- Effort
- Low
- Patch risk
- Other
What it actually does
Excessive CPU consumption during parsing of a large number of email address headers (From, To, Cc, Bcc), with 100k headers taking 12 seconds and 500k taking 18 minutes.
Why it matters to the business
External attackers can trigger resource exhaustion leading to email service outages and degraded system availability.
How an attack unfolds
An attacker sends a specially crafted email containing hundreds of thousands of address headers to a vulnerable email server, causing the header parsing routine to consume excessive CPU time and resulting in denial of service.
How to fix it
Implement restrictions on the number of address headers at the MTA layer preceding the affected component; upgrade to a version that addresses the parsing inefficiency.
How to confirm the fix worked
Test header parsing performance with controlled high-volume address header messages and monitor CPU utilization before and after applying restrictions or updates.
Typical attack path
- Craft an email message containing 100k or more address headers
- Deliver the message via SMTP to the target system
- Trigger the address header parsing code path
- Sustain or repeat the attack to prolong CPU exhaustion and outage
How to detect it
Review mail server logs for incoming messages with unusually high header counts and correlate with spikes in CPU usage on the parsing process.
What your security team should do
- Deploy MTA-level header count limits immediately
- Prioritize patching the affected component to the fixed release
- Add monitoring for anomalous CPU spikes during email ingestion
The record
Having a large number of address headers (From, To, Cc, Bcc, etc.) becomes excessively CPU intensive. With 100k header lines CPU usage is already 12 seconds, and in a production environment we observed 500k header lines taking 18 minutes to parse. Since this can be triggered by external actors sending emails to a victim, this is a security issue. An external attacker can send specially crafted messages that consume target system resources and cause outage. One can implement restrictions on address headers on MTA component preceding Dovecot. No publicly available exploits are known.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | dovecot | 0 | 1:2.3.16-6.el8_10 |
| AlmaLinux:8 | dovecot-devel | 0 | 1:2.3.16-6.el8_10 |
| AlmaLinux:8 | dovecot-mysql | 0 | 1:2.3.16-6.el8_10 |
| AlmaLinux:8 | dovecot-pgsql | 0 | 1:2.3.16-6.el8_10 |
| AlmaLinux:8 | dovecot-pigeonhole | 0 | 1:2.3.16-6.el8_10 |
| AlmaLinux:9 | dovecot | 0 | 1:2.3.16-11.el9_4.1 |
| AlmaLinux:9 | dovecot-devel | 0 | 1:2.3.16-11.el9_4.1 |
| AlmaLinux:9 | dovecot-mysql | 0 | 1:2.3.16-11.el9_4.1 |
| AlmaLinux:9 | dovecot-pgsql | 0 | 1:2.3.16-11.el9_4.1 |
| AlmaLinux:9 | dovecot-pigeonhole | 0 | 1:2.3.16-11.el9_4.1 |
| Alpine:v3.21 | dovecot | 0 | 2.3.21.1-r0 |
| Alpine:v3.22 | dovecot | 0 | 2.3.21.1-r0 |
| Debian:11 | dovecot | 0 | 1:2.3.13+dfsg1-2+deb11u2 |
| Debian:12 | dovecot | 0 | 1:2.3.19.1+dfsg1-2.1+deb12u1 |
| Debian:13 | dovecot | 0 | 1:2.3.21.1+dfsg1-1 |
| Mageia:9 | dovecot | 0 | 2.3.21.1-1.mga9 |
| Red Hat:enterprise_linux:8::appstream | dovecot | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-debugsource | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-devel | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-mysql | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-mysql-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-pgsql | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-pigeonhole | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::appstream | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-debugsource | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-devel | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-mysql | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-mysql-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-pgsql | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-pigeonhole | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:8::crb | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-6.el8_10 |
| Red Hat:enterprise_linux:9::appstream | dovecot | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-debugsource | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-devel | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-mysql | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-mysql-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-pgsql | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-pigeonhole | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::appstream | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-debugsource | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-devel | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-mysql | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-mysql-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-pgsql | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-pigeonhole | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:enterprise_linux:9::crb | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-11.el9_4.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-debugsource | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-devel | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-mysql | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-mysql-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-pgsql | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-pigeonhole | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::appstream | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-debugsource | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-devel | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-mysql | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-mysql-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-pgsql | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-pgsql-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-pigeonhole | 0 | 1:2.3.16-8.el9_2.1 |
| Red Hat:rhel_eus:9.2::crb | dovecot-pigeonhole-debuginfo | 0 | 1:2.3.16-8.el9_2.1 |
| Rocky Linux:8 | dovecot | 0 | 1:2.3.16-6.el8_10 |
| Rocky Linux:9 | dovecot | 0 | 1:2.3.16-11.el9_4.1 |
| SUSE:Enterprise Storage 7.1 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Manager Proxy 4.3 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| SUSE:Manager Server 4.3 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| Ubuntu:20.04:LTS | dovecot | 0 | 1:2.3.7.2-1ubuntu3.6 |
| Ubuntu:20.04:LTS | dovecot | 0 | 1:2.3.7.2-1ubuntu3.7 |
| Ubuntu:22.04:LTS | dovecot | 0 | 1:2.3.16+dfsg1-3ubuntu2.4 |
| Ubuntu:24.04:LTS | dovecot | 0 | 1:2.3.21+dfsg1-2ubuntu6 |
| openSUSE:Leap 15.5 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| openSUSE:Leap 15.6 | dovecot23 | 0 | 2.3.15-150200.65.1 |
| openSUSE:Tumbleweed | dovecot23 | 0 | 2.3.21.1-1.1 |
| openSUSE:Tumbleweed | dovecot24 | 0 | 2.4.0-1.1 |
Related vulnerabilities
- CVE-2024-23185 Very large headers can cause resource exhaustion when parsing message. Also affects dovecot
- CVE-2016-8652 The auth component in Dovecot before 2.2.27, when auth-policy is configured, allows a… Also affects dovecot
- CVE-2014-3430 Dovecot 1.1 before 2.2.13 and dovecot-ee before 2.1.7.7 and 2.2.x before 2.2.12.12 does… Also affects dovecot
- CVE-2024-25584 Dovecot accepts dot LF DOT LF symbol as end of DATA command. Also affects dovecot
- CVE-2026-42006 An attacker can cause uncontrolled memory usage with excessive bracing over IMAP. Also affects dovecot24
- CVE-2026-40016 Attacker can upload a malicious Sieve script over ManageSieve service (or locally) to… Also affects dovecot24
- CVE-2026-40020 Attacker can use the IMAP SETACL command to inject the anyone permission to user's… Also affects dovecot24
- CVE-2026-33603 Attacker can use a specially crafted base64 exchange between Dovecot and Client to fake… Also affects dovecot24