☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Exim logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.3 🐛 CWE-839
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-48840

CVE-2026-48840 Vulnerability in mitre
📅 PUBLISHED: 2026-05-30 00:00 UTC 🔄 UPDATED: 2026-09-23 20:32 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.26%
👁️
0.26% probability
6.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United Kingdom License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-48840 is an information disclosure vulnerability in Exim mail transfer agent (MTA) affecting versions 4.88 through 4.99.3 in certain proxy configurations. The flaw allows a remote attacker to send short payloads that cause Exim to return uninitialized stack memory values to the client, potentially leaking sensitive data such as credentials, encryption keys, or other process memory. The vulnerability has a CVSS score of 5.3 (Medium) and is not currently listed on CISA's Known Exploited Vulnerabilities catalog, though the EPSS score indicates a low but nonzero probability of exploitation. Organizations running Exim as an internet-facing mail server with proxy configurations should prioritize patching.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability resides in Exim's handling of proxy protocol connections, which are used when Exim sits behind a load balancer or proxy that forwards client connection details via the PROXY protocol (as defined in HAProxy's specification). In affected versions (4.88 through 4.99.3), when Exim processes certain short payloads through its proxy handling code, it fails to properly initialize stack memory before using it.

The core issue is a classic uninitialized stack memory read (CWE-839 — Numeric Range Comparison Without Minimum Check). The flaw manifests in the proxy protocol parser when the payload length is below a certain threshold. The code path that parses the PROXY protocol header reads from a stack-allocated buffer without first zeroing or fully initializing it. When the payload is truncated or malformed (specifically, "short payloads"), the parser may read beyond the initialized portion of the buffer and transmit raw stack contents back to the connecting client as part of the protocol response.

From an attack surface perspective, this is remotely exploitable without authentication. The attacker must be able to establish a TCP connection to the Exim listening port (typically 25, 465, or 587) and the server must be configured with a proxy mode (e.g., proxy_required or proxy_protocol options in the config). The attack does not require valid SMTP session establishment — merely connecting and sending a crafted short payload is sufficient.

The leakage is limited to stack memory contents at the time of the connection. This can include fragments of previous function call frames, file descriptors, pointers, environment variables, or portions of credentials that may have passed through the stack during prior processing. Repeated exploitation attempts can yield multiple independent memory samples, increasing the likelihood of capturing sensitive data.

The Debian security team has claimed a patch exists in version 4.99.4, though this is based on a single source and has not been independently confirmed at the time of this report. The patch likely involves either adding explicit stack buffer initialization (memset) before the vulnerable read, or adding a minimum length check on the payload before entering the parsing routine.

Exploitation Scenarios

The following attack chain describes how an attacker would exploit CVE-2026-48840 against a vulnerable Exim server:

Step 1 — Reconnaissance: The attacker begins by scanning for internet-facing Exim servers. Using Shodan or masscan, they query for SMTP banner "220 * ESMTP Exim" or port 25/465/587 responders. They then perform a lightweight probe to determine if the server is running a proxy configuration by sending a crafted PROXY protocol preamble (e.g., PROXY TCP4 1.1.1.1 2.2.2.2 1234 25) and observing the response. If the server replies with a protocol-related error or banner that differs from a standard Exim greeting, they identify it as proxy-enabled and proceed.

Step 2 — Trigger/Weaponization: The attacker crafts a minimal PROXY protocol payload that is shorter than the expected header length. For example, a raw TCP packet containing just the bytes PROXY (5 bytes) or PROXY TCP4 (10 bytes) without the full source/destination addresses and ports. This triggers the vulnerable code path in the proxy parser. The attacker may use a tool like nc or a custom Python script using raw sockets to send the malformed payload directly to port 25.

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("target", 25))
s.send(b"PROXY")  # Short payload triggering the bug
data = s.recv(4096)
print(data)

Step 3 — Exfiltration Loop: The attacker repeats the connection thousands of times, each time sending a slightly varied short payload (different prefixes, truncation points). Each response may contain a different slice of the stack memory. The attacker collects all responses into a file for offline analysis.

Step 4 — Post-Exploitation Analysis: The attacker parses the collected stack memory dumps using a hex dump tool or custom parser. They hunt for:

  • ASCII strings that resemble passwords, API keys, or SMTP credentials.
  • Hexadecimal fragments that could be encryption keys or session tokens.
  • Memory addresses that reveal the server's address space layout (ASLR bypass material) for use in subsequent attacks against other Exim CVEs (e.g., RCE vulnerabilities that require memory layout knowledge).
  • Environment variable remnants that may reveal internal system configuration details (paths, usernames, domain structure).

Step 5 — Pivot: Any credentials or internal system details exfiltrated from memory are used in further attack phases — attempting authentication against the same server, spear-phishing internal users, or pivoting to internal network services.

Impact Assessment

Business Impact: Exim is one of the most widely deployed MTAs on the internet, powering a significant portion of the public mail infrastructure. A medium-severity information disclosure in the default or semi-default configurations of many hosting providers and enterprises becomes more severe when combined with the potential for credential leakage. For managed hosting providers, this could result in mass credential leakage affecting thousands of mailboxes. The CVSS base score of 5.3 reflects the confidentiality impact (partial) with no impact on integrity or availability, but this undersells the real-world risk in environments where Exim processes authenticated SMTP (AUTH LOGIN/PLAIN) — in such cases, the stack may contain cleartext credentials of recent SMTP sessions, making the actual business impact closer to high severity.

Affected Systems: All Exim versions from 4.88 (released 2017) through 4.99.3 (released 2025), when compiled with PROXY protocol support and configured with proxy_required or proxy_protocol options. This includes:

  • Debian/Ubuntu systems with Exim4 installed.
  • RHEL/CentOS/Fedora systems with Exim from EPEL or source builds.
  • Docker containers and cloud mail gateways that proxy SMTP traffic.
  • FreeBSD ports and other UNIX variants.

Blast Radius: The vulnerability is remotely exploitable without authentication. The primary risk is data confidentiality — leaked stack memory can contain secrets from concurrent or recent connections on the same worker process. In multi-tenant hosting environments, a single connection could leak secrets belonging to another tenant's mail session. The data leak is server-side stack memory, meaning it doesn't expose arbitrary heap or file system contents, but repeated exploitation can yield substantial memory samples.

Detection Guidance

Sigma Rule

title: Exim Short Proxy Payload - CVE-2026-48840 Exploitation Attempt
id: 7c3a2f5e-9b1d-4a6c-8e4f-2d5a9c7e1b3d
status: experimental
description: Detects network connections to Exim ports with short PROXY protocol payloads, indicating attempts to trigger CVE-2026-48840.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-48840
author: Valtersit Threat Intel
date: 2026/01/15
logsource:
    category: network_connection
    product: linux
detection:
    selection:
        destination.port:
            - 25
            - 465
            - 587
        source.bytes: '<= 10'
        destination.bytes: '> 100'
        protocol: tcp
    condition: selection
    timeframe: 5m
level: medium
fields:
    - src_ip
    - dest_ip
    - dest_port
    - source.bytes
    - destination.bytes
tags:
    - attack.t1190
    - cve.2026.48840

YARA Rule

rule Exim_Proxy_Stack_Leak_CVE_2026_48840
{
    meta:
        author = "Valtersit Threat Intel"
        description = "Detect Exim 4.88-4.99.3 short proxy payload responses containing stack memory artifacts"
        date = "2026-01-15"
        cve = "CVE-2026-48840"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-48840"
    
    strings:
        $proxy_hdr = "PROXY" ascii wide
        $exim_banner = "ESMTP Exim" ascii wide nocase
        $stack_ptr = /0x[0-9a-fA-F]{16}/   // 64-bit stack address in leaked data
        $stack_ptr32 = /0x[0-9a-fA-F]{8}/  // 32-bit stack address
        $smtp_auth = "AUTH" ascii wide nocase
    
    condition:
        uint16(0) == 0x0A0D and        // CRLF framing
        any of them and
        #stack_ptr >= 3                 // multiple leaked addresses suggest stack dump
        or
        $proxy_hdr and $exim_banner 5 filesize < 10KB
}

Suricata IDS Rule

alert tcp any any -> any 25,465,587 (msg:"CVE-2026-48840 Exim Short PROXY Payload Stack Leak Attempt"; flow:to_server,established; content:"PROXY"; depth:5; within:5; content:"!"; nocase; pcre:"/^PROXY(?! TCP[146]| UNKNOWN| SSL)/"; threshold:type both, track by_src, count 10, seconds 60; classtype:attempted-information-leak; reference:cve,2026-48840; metadata:created_at 2026-01-15; sid:2026048840; rev:1;)

Elastic Detection

elasticsearch:
  index: "filebeat-*"
  query:
    bool:
      must:
        - term:
            network.protocol: "tcp"
        - terms:
            destination.port: [25, 465, 587]
        - range:
            source.bytes:
              lte: 10
        - range:
            destination.bytes:
              gte: 100
  timeframe: 5m
  severity: medium

Elastic EQL (event correlation)

sequence by host.name
  [network where destination.port in (25, 465, 587) and network.direction == "ingress" and source.bytes <= 10]
  [network where destination.port in (25, 465, 587) and network.direction == "egress" and destination.bytes >= 100]

Splunk SPL Query

index=netflow OR index=proxy sourcetype=cisco:asa OR sourcetype=pan:traffic
| where dest_port IN (25, 465, 587) AND bytes_out <= 10
| join type=inner dest_ip [search index=netflow src_port IN (25, 465, 587) AND bytes_in > 100 | rename src_ip as dest_ip, bytes_in as response_bytes]
| stats count by src_ip, dest_ip, dest_port
| where count > 10
| outputlookup exim_cve_2026_48840_sources.csv

Wazuh OSSEC Rule

<group name="exim, cve-2026-48840,">
  <rule id="100488" level="7">
    <if_sid>100000</if_sid>
    <match>PROXY</match>
    <regex>^PROXY(?!\s+(TCP4|TCP6|UNKNOWN))</regex>
    <description>CVE-2026-48840: Short PROXY protocol payload to Exim - possible stack memory leak attempt</description>
    <group>exim,attack.t1190,</group>
    <options>no_full_log</options>
  </rule>
  <rule id="100489" level="9" frequency="10" timeframe="60">
    <if_matched_sid>100488</if_matched_sid>
    <description>CVE-2026-48840: Multiple short PROXY payloads from single source - active exploitation campaign</description>
    <group>exim,attack.t1190,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 (CLAIMED — single source (Debian) claims patch, not independently confirmed)

1) Immediate Mitigations (no downtime):

  • Disable PROXY protocol support in the Exim configuration if it is not actively required. Remove or comment out the lines containing proxy_required, proxy_protocol, or proxy_interface in the main Exim configuration file (/etc/exim/exim.conf typically), then run exim -bV to validate the config and restart the service.
  • Restrict proxy connections to trusted sources using firewall rules: only allow connections from known load balancers (e.g., iptables -A INPUT -p tcp --dport 25 -s <LB_IP> -j ACCEPT and drop all other 25/465/587 traffic except from allowed proxy servers). This limits who can trigger the vulnerability.
  • Enable SMTP AUTH rate limiting to slow down attackers attempting repeated stack leak connections. Add rate_limit_conn directives in the config for the relevant ACLs.

2) Patch/Upgrade Steps:

  • Upgrade Exim to version 4.99.4 or later once the patch is independently confirmed. For Debian/Ubuntu: apt update && apt upgrade exim4 — check the package version with exim4 --version and confirm it is >= 4.99.4. For source builds: download the official tarball from exim.org, verify the checksum, then ./configure && make && make install. For RHEL-based systems using EPEL: yum update exim.
  • Verify the patch: after upgrading, check if the upstream changelog (CHANGELOG or git log) mentions fix for CVE-2026-48840. As a minimal validation, attempt to connect and send a short PROXY payload — a properly patched server should reject it with a protocol error rather than returning banner data with stack artifacts.
  • If 4.99.4 is not yet available from your distro vendor, check the Exim GitHub repository for a commit that addresses the short-payload proxy issue, and consider backporting the patch manually.

3) Long-term Hardening:

  • Adopt a scheduled patching policy for Exim, as it is a high-value internet-facing target. Subscribe to the Exim announcements mailing list and Debian/Ubuntu security notices.
  • Implement network segmentation so SMTP servers are in a DMZ with no outbound access except to delivery MXs, reducing the exfiltration impact of any leaks.
  • Monitor SMTP endpoints with IDS/IPS (as per detection rules above) and feed alerts into the SIEM.
  • Consider replacing PROXY protocol with TLS-based alternatives or use X-Forwarded-For/HAProxy's newer protocol versions that have stricter parsing if the environment permits.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-48840
  2. Debian Security Tracker: https://security-tracker.debian.org/tracker/CVE-2026-48840
  3. Exim Official Site / Changelog: https://www.exim.org/ (check version 4.99.4 release notes)
  4. HAProxy PROXY Protocol Spec: https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt (relevant for understanding the protocol parsing context)
  5. CISA Known Exploited Vulnerabilities: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2026-48840 not listed — confirm and monitor for updates)

Campaign Notes: As of this report, there are no publicly documented threat actor campaigns exploiting this vulnerability, and no evidence of exploitation in the wild (EPSS 0.00264, 18.1% percentile). However, Exim has been a frequent target of botnets and state-sponsored groups (e.g., CVE-2019-10149 "Return of the WIZard" exploited by multiple actors), and this information disclosure could serve as a reconnaissance step in future campaigns. Monitor threat intel feeds closely for updates within the next 30 days.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-48840/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.