CVE-2024-30203
NoneCVSS
—
EPSS
0.6%
Published
Mar 25, 2024
CISA due date
—
Cloudanix analysis
A problem in the Emacs news and email tool could let attackers hide harmful instructions inside messages that the program then runs without checking.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Theoretical
- Impact
- Other
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
Gnus in Emacs treats inline MIME contents as trusted without validation, allowing untrusted message parts to be processed as if they originated from a safe source and potentially leading to execution of embedded content or scripts.
Why it matters to the business
Organizations using Emacs for email or news reading face elevated risk of system compromise through malicious messages, which can result in unauthorized code execution, data exposure, or follow-on attacks, especially for users who have not yet applied available updates.
How an attack unfolds
An attacker creates an email or NNTP post containing inline MIME parts with malicious payloads. When the recipient views the message in Gnus, the client trusts and processes the content directly, enabling the payload to execute or exfiltrate information without additional user interaction.
How to fix it
Upgrade Emacs to version 29.3 or newer. For the affected org-mode repository, apply the fix present in commit 5ff4d54c6fa527f478035467ffe0a82a81a92320.
How to confirm the fix worked
Confirm Emacs reports version 29.3 or later; test Gnus handling of inline MIME parts with known untrusted content to verify it no longer treats them as trusted.
Typical attack path
- Craft message containing malicious inline MIME content
- Deliver via email or news server to target users
- Victim opens or previews the message in Gnus
- Trusted MIME processing executes or activates the payload
How to detect it
Search application and system logs for Gnus or Emacs processes that spawn unexpected child processes, open unusual network connections, or access files after message viewing; correlate with message receipt timestamps.
What your security team should do
- Apply the Emacs 29.3 update across all installations without delay
- Review Gnus configuration to disable automatic processing of inline MIME where possible
- Monitor user reports of unexpected behavior after opening messages
The record
In Emacs before 29.3, Gnus treats inline MIME contents as trusted.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | emacs | 0 | 1:26.1-12.el8_10 |
| AlmaLinux:8 | emacs-common | 0 | 1:26.1-12.el8_10 |
| AlmaLinux:8 | emacs-filesystem | 0 | 1:26.1-12.el8_10 |
| AlmaLinux:8 | emacs-lucid | 0 | 1:26.1-12.el8_10 |
| AlmaLinux:8 | emacs-nox | 0 | 1:26.1-12.el8_10 |
| AlmaLinux:8 | emacs-terminal | 0 | 1:26.1-12.el8_10 |
| Debian:10 | emacs | 0 | 1:26.1+1-3.2+deb10u5 |
| Debian:10 | org-mode | 0 | 9.1.14+dfsg-3+deb10u2 |
| Debian:11 | emacs | 0 | 1:27.1+1-3.1+deb11u3 |
| Debian:11 | org-mode | 0 | 9.4.0+dfsg-1+deb11u2 |
| Debian:12 | emacs | 0 | 1:28.2+1-15+deb12u1 |
| Debian:12 | org-mode | 0 | No fix |
| Debian:13 | emacs | 0 | 1:29.3+1-1 |
| Debian:13 | org-mode | 0 | 9.6.23+dfsg-1 |
| Debian:14 | emacs | 0 | 1:29.3+1-1 |
| Debian:14 | org-mode | 0 | 9.6.23+dfsg-1 |
| Mageia:9 | emacs | 0 | 28.2-10.1.mga9 |
| Red Hat:enterprise_linux:8::appstream | emacs | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-common | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-common-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-debugsource | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-filesystem | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-lucid | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-lucid-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-nox | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-nox-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::appstream | emacs-terminal | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-common | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-common-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-debugsource | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-filesystem | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-lucid | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-lucid-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-nox | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-nox-debuginfo | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:8::baseos | emacs-terminal | 0 | 1:26.1-12.el8_10 |
| Red Hat:enterprise_linux:9::appstream | emacs | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-common | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-common-debuginfo | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-debuginfo | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-debugsource | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-filesystem | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-lucid | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-lucid-debuginfo | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-nox | 0 | 1:27.2-10.el9 |
| Red Hat:enterprise_linux:9::appstream | emacs-nox-debuginfo | 0 | 1:27.2-10.el9 |
| Rocky Linux:9 | emacs | 0 | 1:27.2-10.el9_4 |
| SUSE:Enterprise Storage 7.1 | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | emacs | 0 | 27.2-150400.3.11.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | emacs | 0 | 27.2-150400.3.11.1 |
| SUSE:Linux Enterprise Server 12 SP5 | emacs | 0 | 24.3-25.17.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | emacs | 0 | 24.3-25.17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | emacs | 0 | 25.3-150000.3.22.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | emacs | 0 | 25.3-150000.3.22.1 |
| Ubuntu:16.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:16.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:18.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:18.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:20.04:LTS | emacs | 0 | No fix |
| Ubuntu:20.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:20.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:22.04:LTS | emacs | 0 | No fix |
| Ubuntu:22.04:LTS | emacs | 0 | 1:27.1+1-3ubuntu5.2 |
| Ubuntu:22.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:22.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:24.04:LTS | emacs | 0 | No fix |
| Ubuntu:24.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:24.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:24.10 | xemacs21 | 0 | No fix |
| Ubuntu:24.10 | xemacs21-packages | 0 | No fix |
| Ubuntu:25.04 | xemacs21 | 0 | No fix |
| Ubuntu:25.04 | xemacs21-packages | 0 | No fix |
| Ubuntu:25.10 | xemacs21 | 0 | No fix |
| Ubuntu:25.10 | xemacs21-packages | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | emacs24 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | emacs24 | 0 | 24.5+1-6ubuntu1.1+esm4 |
| Ubuntu:Pro:16.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | emacs25 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | emacs25 | 0 | 25.2+1-6ubuntu0.1~esm2 |
| Ubuntu:Pro:18.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | emacs | 0 | 1:26.3+1-1ubuntu2+esm1 |
| Ubuntu:Pro:20.04:LTS | xemacs21 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | xemacs21-packages | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | emacs | 0 | 1:29.3+1-1ubuntu2+esm1 |
| openSUSE:Leap 15.5 | emacs | 0 | 27.2-150400.3.11.1 |
Related vulnerabilities
- CVE-2024-53920 In elisp-mode.el in GNU Emacs through 30.0.92, a user who chooses to invoke… Also affects emacs
- CVE-2024-39331 In Emacs before 29.4, org-link-expand-abbrev in lisp/ol.el expands a %(...) link abbrev… Also affects emacs
- CVE-2024-30205 In Emacs before 29.3, Org mode considers contents of remote files to be trusted. Also affects emacs
- CVE-2024-30204 In Emacs before 29.3, LaTeX preview is enabled by default for e-mail attachments. Also affects emacs
- CVE-2024-30202 In Emacs before 29.3, arbitrary Lisp code is evaluated as part of turning on Org mode. Also affects emacs