What is the Zimbra postjournal Service?
Zimbra Collaboration Suite (ZCS) is an enterprise email, calendar, and collaboration platform. The postjournal service is an optional Zimbra component that records email communications for compliance and archiving purposes — logging copies of sent and received messages to an external journal server or storage system. It operates as a standalone process that listens for SMTP connections and processes message data passed to it from the mail system.
Because postjournal is an SMTP-facing service, it accepts input from the network. CVE-2024-45519 exposes that input path as a direct OS command injection point — an attacker can send specially crafted SMTP data to postjournal and execute arbitrary operating system commands on the Zimbra server with no authentication required.
Overview
CVE-2024-45519 is an unauthenticated OS command injection in the postjournal service of Zimbra Collaboration Suite. The read_maps function in the postjournal binary passes user-supplied SMTP input directly to popen() without sanitization, allowing an attacker to inject arbitrary shell commands. An attacker exploits this by sending a specially crafted email to a Zimbra server with postjournal enabled — the commands execute as the Zimbra service user with no authentication required.
postjournal binary remains on disk and could be enabled by configuration change or misconfigurations in managed environments.
Affected Versions
| Status | Zimbra ZCS Version | Fixed In |
|---|---|---|
| Vulnerable | ZCS 8.8.15 Patch 45 and earlier | 8.8.15 Patch 46 |
| Vulnerable | ZCS 9.0.0 Patch 40 and earlier | 9.0.0 Patch 41 |
| Vulnerable | ZCS 10.0.x prior to 10.0.9 | 10.0.9 |
| Vulnerable | ZCS 10.1.x prior to 10.1.1 | 10.1.1 |
Technical Details
The vulnerability is in the postjournal binary (/opt/zimbra/libexec/postjournal), specifically in the read_maps function. When the postjournal service processes an SMTP connection, the msg_handler function processes incoming message data and passes it to read_maps. Inside read_maps, recipient address data from the SMTP session is incorporated into a command string and passed to popen() without any sanitization or escaping.
popen() executes its argument string through a shell (/bin/sh -c <string>). By injecting shell metacharacters into the SMTP recipient field, an attacker causes the shell to execute attacker-controlled commands:
# Simplified illustration of the vulnerable pattern:
char cmd[1024];
snprintf(cmd, sizeof(cmd), "some-program %s", user_input);
popen(cmd, "r"); // user_input is injected without sanitization
The fix replaces popen() with execvp() (which does not invoke a shell and is not susceptible to command injection) and adds input sanitization on the recipient field. The patched version prevents the shell injection entirely.
Attack delivery: An attacker crafts an SMTP message and delivers it directly to the postjournal service port. In the exploitation observed by Proofpoint, attackers sent emails with malicious content in the recipient address field (base64-encoded payloads observed in email headers). The commands execute as the zimbra service user on the server.
Attack characteristics:
- Authentication required: No — SMTP is an unauthenticated protocol
- User interaction: None — the attack is server-side, no user needs to open anything
- Attack complexity: Low
- Scope: Changed — commands execute on the server, crossing the security boundary of the email service
Discovery
CVE-2024-45519 was discovered by security researcher Alan Li (lebr0nli) and reported to Zimbra. Zimbra patched the vulnerability in early September 2024. ProjectDiscovery subsequently reversed the postjournal binary and published a detailed technical analysis and proof-of-concept, confirming the popen() injection path. Mass exploitation began within days of ProjectDiscovery's public disclosure.
Exploitation Context
Proofpoint documented active mass exploitation beginning September 28, 2024 — three weeks after the patch was released but coinciding with public PoC availability. The exploitation campaign sent specially crafted emails with command injection payloads embedded in message headers. The attacker's goal was webshell installation: the injected commands download and write a JSP webshell to the Zimbra web root, providing persistent HTTPS-accessible command execution on the compromised server.
Proofpoint noted an unusual operational security observation: the threat actor was using the same server to both send the exploit emails and host the second-stage payloads — making the attacker infrastructure relatively straightforward to identify. The campaign was unattributed at time of disclosure.
CISA added the CVE to the KEV catalog on October 3, 2024 — the day after NVD publication — one of the shortest intervals between CVE publication and KEV addition, reflecting the urgency of the ongoing mass exploitation.
Remediation
- Patch immediately: upgrade to ZCS 8.8.15 Patch 46, 9.0.0 Patch 41, 10.0.9, or 10.1.1. Even if postjournal is not enabled, the patch should be applied to prevent exploitation if the service is ever started.
- Verify postjournal status: check whether postjournal is enabled on your system. If not required for compliance journaling, disable or remove the binary as an additional hardening measure:
sudo -u zimbra /opt/zimbra/bin/zmjournalctl disable(or remove the binary from/opt/zimbra/libexec/postjournal). - Network isolation: restrict access to the postjournal service port (default: 10028) to only trusted mail relay hosts via firewall rules. The service should not be accessible from the public internet.
- Hunt for webshells: search the Zimbra web root (
/opt/zimbra/jetty/webapps/zimbra/) for JSP files not present in the standard Zimbra installation. Review Zimbra logs at/opt/zimbra/log/for unusual commands executed via SMTP processing. - Monitor for base64-encoded payloads in email headers: detection of base64-encoded strings in the RCPT TO or message header fields of SMTP connections to the postjournal port is a strong indicator of exploitation attempts.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2024-45519 |
| Vendor / Product | Synacor — Zimbra Collaboration Suite (ZCS) |
| NVD Published | 2024-10-02 |
| NVD Last Modified | 2025-11-04 |
| CVSS 3.1 Score | 10 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Severity | CRITICAL |
| CWE | CWE-78 — Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') |
| CISA KEV Added | 2024-10-03 |
| CISA KEV Deadline | 2024-10-24 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2024-09-01 | Zimbra patches CVE-2024-45519 in early September 2024 (ZCS 8.8.15 P46, 9.0.0 P41, 10.0.9, 10.1.1) |
| 2024-09-28 | Mass exploitation begins; Proofpoint observes attackers sending crafted SMTP emails to install webshells |
| 2024-10-02 | CVE-2024-45519 published at NVD; ProjectDiscovery publishes technical analysis and PoC |
| 2024-10-03 | Added to CISA Known Exploited Vulnerabilities catalog — one day after NVD publication |
| 2024-10-24 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2024-45519 | Vulnerability Database |
| Zimbra Blog — CVE-2024-45519 Vulnerability: Stay Secure by Updating | Vendor Advisory / Patch |
| Zimbra Release Notes — 8.8.15 Patch 46 | Vendor Advisory / Patch |
| ProjectDiscovery — Zimbra Remote Command Execution (CVE-2024-45519) | Security Research |
| Help Net Security — Critical Zimbra RCE Vulnerability Under Mass Exploitation | Press/Media Coverage |
| CISA KEV Catalog Entry | US Government |
| CISA BOD 22-01 | Remediation Directive |
| CWE-78 — OS Command Injection | Weakness Classification |