CVE-2019-19920
High · 8.8CVSS
8.8
EPSS
3.2%
Published
Dec 22, 2019
CISA due date
—
Cloudanix analysis
Email filtering software can let attackers run any commands on the server simply by adding certain configuration files.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability permits arbitrary code execution because Greylisting.pm invokes Perl eval on untrusted data from .cf files or rules without taint checking or safe parsing.
Why it matters to the business
Compromise of mail servers allows attackers to run commands, access or alter email traffic, and pivot into the broader environment, causing service outages and data loss.
How an attack unfolds
An attacker writes a malicious .cf file or rule containing Perl code; when the greylisting module loads and evaluates the file, the injected code executes with the privileges of the mail process.
How to fix it
Remove or disable the vulnerable Greylisting.pm module, replace sa-exim with a maintained alternative, and ensure no untrusted configuration data reaches eval.
How to confirm the fix worked
Inspect installed sa-exim packages and Greylisting.pm source for direct eval usage on external input; verify that taint mode or safe parsing is enforced.
Typical attack path
- Locate a writable directory used by sa-exim for .cf or rule files
- Place attacker-controlled Perl code inside the file
- Trigger greylisting evaluation (e.g., via SMTP transaction)
- Achieve arbitrary command execution on the host
How to detect it
Review mail logs and process execution history for unexpected Perl evaluations or child processes spawned from the sa-exim context; search filesystem for recently added .cf files containing eval or system calls.
What your security team should do
- Audit all mail servers for presence of sa-exim and the Greylisting module
- Block or restrict write access to directories that feed .cf or rule files
- Implement application allow-listing for mail-filter processes
The record
sa-exim 4.2.1 allows attackers to execute arbitrary code if they can write a .cf file or a rule. This occurs because Greylisting.pm relies on eval (rather than direct parsing and/or use of the taint feature). This issue is similar to CVE-2018-11805.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | sa-exim | 0 | 4.2.1-19 |
| Debian:12 | sa-exim | 0 | 4.2.1-19 |
| Debian:13 | sa-exim | 0 | 4.2.1-19 |
| Debian:8 | sa-exim | 0 | 4.2.1-14+deb8u1 |
| Ubuntu:16.04:LTS | sa-exim | 0 | 4.2.1-14+deb8u1build0.16.04.1 |
| Ubuntu:18.04:LTS | sa-exim | 0 | No fix |
| Ubuntu:20.04:LTS | sa-exim | 0 | 4.2.1-19 |
| Ubuntu:Pro:18.04:LTS | sa-exim | 0 | No fix |
Related vulnerabilities
- CVE-2026-96376 Improper Neutralization of Special Elements used in an OS Command ("OS Command… CWE-78
- CVE-2026-113732 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113726 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113725 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113722 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-112943 launch-editor allows users to open files with line numbers in editor from Node.js. CWE-78
- CVE-2026-112900 Pillow is a Python imaging library. CWE-78