Every CVE Search/ Get API key

CVE-2018-6789

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By...

9.8 CriticalIn KEVPublic exploitFix available

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

82.1%Up 64.3 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-120
Updated
2026-11-02
CVE List 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-120
Updated
2026-11-02
EUVDEUVD-2018-18536 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
EUVD-2018-18536
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-868p-wr6f-7jfr 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By...

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
GHSA-868p-wr6f-7jfr
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-119, CWE-120
Updated
2026-11-02
CISA KEV No score

Exim Buffer Overflow Vulnerability

Exim contains a buffer overflow vulnerability in the base64d function part of the SMTP listener that may allow for remote code execution.

Record
CVE-2018-6789
Weakness
CWE-119
Updated
2026-11-02
OSVALPINE-CVE-2018-6789 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
ALPINE-CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-03
Show 8 moreShow less
OSV 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2018-6789 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
DEBIAN-CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2018-6789 9.8

An issue was discovered in the base64d function in the SMTP listener in Exim before 4.90.1. By sending a handcrafted message, a buffer overflow may happen. This can be used to execute code remotely.

Record
UBUNTU-CVE-2018-6789
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVopenSUSE-SU-2021:0677-1 No score

Security update for exim

This update for exim fixes the following issues:

Exim was updated to exim-4.94.2

security update (boo#1185631)

  • CVE-2020-28007: Link attack in Exim's log directory
  • CVE-2020-28008: Assorted attacks in Exim's spool directory
  • CVE-2020-28014: Arbitrary PID file creation
  • CVE-2020-28011: Heap buffer overflow in queue_run()
  • CVE-2020-28010: Heap out-of-bounds write in main()
  • CVE-2020-28013: Heap buffer overflow in parse_fix_phrase()
  • CVE-2020-28016: Heap out-of-bounds write in parse_fix_phrase()
  • CVE-2020-28015: New-line injection into spool header file (local)
  • CVE-2020-28012: Missing close-on-exec flag for privileged pipe
  • CVE-2020-28009: Integer overflow in get_stdinput()
  • CVE-2020-28017: Integer overflow in receive_add_recipient()
  • CVE-2020-28020: Integer overflow in receive_msg()
  • CVE-2020-28023: Out-of-bounds read in smtp_setup_msg()
  • CVE-2020-28021: New-line injection into spool header file (remote)
  • CVE-2020-28022: Heap out-of-bounds read and write in extract_option()
  • CVE-2020-28026: Line truncation and injection in spool_read_header()
  • CVE-2020-28019: Failure to reset function pointer after BDAT error
  • CVE-2020-28024: Heap buffer underflow in smtp_ungetc()
  • CVE-2020-28018: Use-after-free in tls-openssl.c
  • CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()

update to exim-4.94.1

  • Fix security issue in BDAT state confusion. Ensure we reset known-good where we know we need to not be reading BDAT data, as a general case fix, and move the places where we switch to BDAT mode until after various protocol state checks. Fixes CVE-2020-BDATA reported by Qualys.
  • Fix security issue in SMTP verb option parsing (CVE-2020-EXOPT)
  • Fix security issue with too many recipients on a message (to remove a known security problem if someone does set recipients_max to unlimited, or if local additions add to the recipient list). Fixes CVE-2020-RCPTL reported by Qualys.
  • Fix CVE-2020-28016 (PFPZA): Heap out-of-bounds write in parse_fix_phrase()
  • Fix security issue CVE-2020-PFPSN and guard against cmdline invoker providing a particularly obnoxious sender full name.
  • Fix Linux security issue CVE-2020-SLCWD and guard against PATH_MAX better.
  • bring back missing exim_db.8 manual page (fixes boo#1173693)

  • bring in changes from current +fixes (lots of taint check fixes)

    • Bug 1329: Fix format of Maildir-format filenames to match other mail- related applications. Previously an 'H' was used where available info says that 'M' should be, so change to match.
    • Bug 2587: Fix pam expansion condition. Tainted values are commonly used as arguments, so an implementation trying to copy these into a local buffer was taking a taint-enforcement trap. Fix by using dynamically created buffers.
    • Bug 2586: Fix listcount expansion operator. Using tainted arguments is reasonable, eg. to count headers. Fix by using dynamically created buffers rather than a local. Do similar fixes for ACL actions 'dcc', 'log_reject_target', 'malware' and 'spam'; the arguments are expanded so could be handling tainted values.
    • Bug 2590: Fix -bi (newaliases). A previous code rearrangement had broken the (no-op) support for this sendmail command. Restore it to doing nothing, silently, and returning good status.
  • update to exim 4.94

    • some transports now refuse to use tainted data in constructing their delivery location this WILL BREAK configurations which are not updated accordingly. In particular: any Transport use of $local_user which has been relying upon check_local_user far away in the Router to make it safe, should be updated to replace $local_user with $local_part_data.
    • Attempting to remove, in router or transport, a header name that ends with an asterisk (which is a standards-legal name) will now result in all headers named starting with the string…
Record
openSUSE-SU-2021:0677-1
Updated
2026-11-02
OSVopenSUSE-SU-2021:0753-1 No score

Security update for exim

This update for exim fixes the following issues:

exim was updated to 4.94.2:

security update (boo#1185631)

  • CVE-2020-28007: Link attack in Exim's log directory
  • CVE-2020-28008: Assorted attacks in Exim's spool directory
  • CVE-2020-28014: Arbitrary PID file creation
  • CVE-2020-28011: Heap buffer overflow in queue_run()
  • CVE-2020-28010: Heap out-of-bounds write in main()
  • CVE-2020-28013: Heap buffer overflow in parse_fix_phrase()
  • CVE-2020-28016: Heap out-of-bounds write in parse_fix_phrase()
  • CVE-2020-28015: New-line injection into spool header file (local)
  • CVE-2020-28012: Missing close-on-exec flag for privileged pipe
  • CVE-2020-28009: Integer overflow in get_stdinput()
  • CVE-2020-28017: Integer overflow in receive_add_recipient()
  • CVE-2020-28020: Integer overflow in receive_msg()
  • CVE-2020-28023: Out-of-bounds read in smtp_setup_msg()
  • CVE-2020-28021: New-line injection into spool header file (remote)
  • CVE-2020-28022: Heap out-of-bounds read and write in extract_option()
  • CVE-2020-28026: Line truncation and injection in spool_read_header()
  • CVE-2020-28019: Failure to reset function pointer after BDAT error
  • CVE-2020-28024: Heap buffer underflow in smtp_ungetc()
  • CVE-2020-28018: Use-after-free in tls-openssl.c
  • CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()

update to exim-4.94.1

  • Fix security issue in BDAT state confusion. Ensure we reset known-good where we know we need to not be reading BDAT data, as a general case fix, and move the places where we switch to BDAT mode until after various protocol state checks. Fixes CVE-2020-BDATA reported by Qualys.
  • Fix security issue in SMTP verb option parsing (CVE-2020-EXOPT)
  • Fix security issue with too many recipients on a message (to remove a known security problem if someone does set recipients_max to unlimited, or if local additions add to the recipient list). Fixes CVE-2020-RCPTL reported by Qualys.
  • Fix CVE-2020-28016 (PFPZA): Heap out-of-bounds write in parse_fix_phrase()
  • Fix security issue CVE-2020-PFPSN and guard against cmdline invoker providing a particularly obnoxious sender full name.
  • Fix Linux security issue CVE-2020-SLCWD and guard against PATH_MAX better.
  • bring back missing exim_db.8 manual page (fixes boo#1173693)

  • bring in changes from current +fixes (lots of taint check fixes)

    • Bug 1329: Fix format of Maildir-format filenames to match other mail- related applications. Previously an 'H' was used where available info says that 'M' should be, so change to match.
    • Bug 2587: Fix pam expansion condition. Tainted values are commonly used as arguments, so an implementation trying to copy these into a local buffer was taking a taint-enforcement trap. Fix by using dynamically created buffers.
    • Bug 2586: Fix listcount expansion operator. Using tainted arguments is reasonable, eg. to count headers. Fix by using dynamically created buffers rather than a local. Do similar fixes for ACL actions 'dcc', 'log_reject_target', 'malware' and 'spam'; the arguments are expanded so could be handling tainted values.
    • Bug 2590: Fix -bi (newaliases). A previous code rearrangement had broken the (no-op) support for this sendmail command. Restore it to doing nothing, silently, and returning good status.

update to exim 4.94

  • some transports now refuse to use tainted data in constructing their delivery location this WILL BREAK configurations which are not updated accordingly. In particular: any Transport use of $local_user which has been relying upon check_local_user far away in the Router to make it safe, should be updated to replace $local_user with $local_part_data.
  • Attempting to remove, in router or transport, a header name that ends with an asterisk (which is a standards-legal name) will now result in all headers named starting with the string before…
Record
openSUSE-SU-2021:0753-1
Updated
2026-11-02
OSVopenSUSE-SU-2021:0754-1 No score

Security update for exim

This update for exim fixes the following issues:

Exim was updated to exim-4.94.2

security update (boo#1185631)

  • CVE-2020-28007: Link attack in Exim's log directory
  • CVE-2020-28008: Assorted attacks in Exim's spool directory
  • CVE-2020-28014: Arbitrary PID file creation
  • CVE-2020-28011: Heap buffer overflow in queue_run()
  • CVE-2020-28010: Heap out-of-bounds write in main()
  • CVE-2020-28013: Heap buffer overflow in parse_fix_phrase()
  • CVE-2020-28016: Heap out-of-bounds write in parse_fix_phrase()
  • CVE-2020-28015: New-line injection into spool header file (local)
  • CVE-2020-28012: Missing close-on-exec flag for privileged pipe
  • CVE-2020-28009: Integer overflow in get_stdinput()
  • CVE-2020-28017: Integer overflow in receive_add_recipient()
  • CVE-2020-28020: Integer overflow in receive_msg()
  • CVE-2020-28023: Out-of-bounds read in smtp_setup_msg()
  • CVE-2020-28021: New-line injection into spool header file (remote)
  • CVE-2020-28022: Heap out-of-bounds read and write in extract_option()
  • CVE-2020-28026: Line truncation and injection in spool_read_header()
  • CVE-2020-28019: Failure to reset function pointer after BDAT error
  • CVE-2020-28024: Heap buffer underflow in smtp_ungetc()
  • CVE-2020-28018: Use-after-free in tls-openssl.c
  • CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()

update to exim-4.94.1

  • Fix security issue in BDAT state confusion. Ensure we reset known-good where we know we need to not be reading BDAT data, as a general case fix, and move the places where we switch to BDAT mode until after various protocol state checks. Fixes CVE-2020-BDATA reported by Qualys.
  • Fix security issue in SMTP verb option parsing (CVE-2020-EXOPT)
  • Fix security issue with too many recipients on a message (to remove a known security problem if someone does set recipients_max to unlimited, or if local additions add to the recipient list). Fixes CVE-2020-RCPTL reported by Qualys.
  • Fix CVE-2020-28016 (PFPZA): Heap out-of-bounds write in parse_fix_phrase()
  • Fix security issue CVE-2020-PFPSN and guard against cmdline invoker providing a particularly obnoxious sender full name.
  • Fix Linux security issue CVE-2020-SLCWD and guard against PATH_MAX better.
  • bring back missing exim_db.8 manual page (fixes boo#1173693)

  • bring in changes from current +fixes (lots of taint check fixes)

    • Bug 1329: Fix format of Maildir-format filenames to match other mail- related applications. Previously an 'H' was used where available info says that 'M' should be, so change to match.
    • Bug 2587: Fix pam expansion condition. Tainted values are commonly used as arguments, so an implementation trying to copy these into a local buffer was taking a taint-enforcement trap. Fix by using dynamically created buffers.
    • Bug 2586: Fix listcount expansion operator. Using tainted arguments is reasonable, eg. to count headers. Fix by using dynamically created buffers rather than a local. Do similar fixes for ACL actions 'dcc', 'log_reject_target', 'malware' and 'spam'; the arguments are expanded so could be handling tainted values.
    • Bug 2590: Fix -bi (newaliases). A previous code rearrangement had broken the (no-op) support for this sendmail command. Restore it to doing nothing, silently, and returning good status.
  • update to exim 4.94

    • some transports now refuse to use tainted data in constructing their delivery location this WILL BREAK configurations which are not updated accordingly. In particular: any Transport use of $local_user which has been relying upon check_local_user far away in the Router to make it safe, should be updated to replace $local_user with $local_part_data.
    • Attempting to remove, in router or transport, a header name that ends with an asterisk (which is a standards-legal name) will now result in all headers named starting with the string…
Record
openSUSE-SU-2021:0754-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:10746-1 No score

exim-4.94.2-4.2 on GA media

These are all security issues fixed in the exim-4.94.2-4.2 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:10746-1
Updated
2026-11-02
OSVUSN-3565-1 No score

exim4 vulnerability

Meh Chang discovered that Exim incorrectly handled memory in certain decoding operations. A remote attacker could use this issue to cause Exim to crash, resulting in a denial of service, or possibly execute arbitrary code.

Record
USN-3565-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
exim
Alpine:v3.10
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.11
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.12
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.13
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.14
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.15
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.16
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.17
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.18
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.19
before 4.90.1-r0
4.90.1-r0
Show 22 moreShow less
Affected packages
PackageAffectedFixed
exim
Alpine:v3.20
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.21
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.22
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.23
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.24
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.7
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.8
before 4.90.1-r0
4.90.1-r0
exim
Alpine:v3.9
before 4.90.1-r0
4.90.1-r0
exim4
Debian:12
before 4.90.1-1
4.90.1-1
exim4
Debian:13
before 4.90.1-1
4.90.1-1
exim4
Debian:14
before 4.90.1-1
4.90.1-1
exim4
Debian:7
before 4.80-7+deb7u6, plus listed versions
4.80-74.80-7+deb7u14.80-7+deb7u24.80-7+deb7u34.80-7+deb7u44.80-7+deb7u5
4.80-7+deb7u6
exim4
Debian:8
before 4.84.2-2+deb8u5, plus listed versions
4.84-84.84-8+deb8u14.84-8+deb8u24.84.2-14.84.2-1+deb8u1
Show 5 moreShow less
4.84.2-24.84.2-2+deb8u14.84.2-2+deb8u24.84.2-2+deb8u34.84.2-2+deb8u4
4.84.2-2+deb8u5
exim4
Debian:9
before 4.89-2+deb9u3, plus listed versions
4.89-24.89-2+deb9u14.89-2+deb9u1~bpo8+14.89-2+deb9u24.89-2+deb9u3~bpo8+1
4.89-2+deb9u3
exim4
Ubuntu:14.04:LTS
before 4.82-3ubuntu2.4, plus listed versions
4.80-7ubuntu34.80-7ubuntu44.80-9ubuntu14.80-9ubuntu24.82-3ubuntu1
Show 4 moreShow less
4.82-3ubuntu24.82-3ubuntu2.14.82-3ubuntu2.24.82-3ubuntu2.3
4.82-3ubuntu2.4
exim4
Ubuntu:16.04:LTS
before 4.86.2-2ubuntu2.3, plus listed versions
4.86-3ubuntu14.86-7ubuntu14.86-7ubuntu24.86-7ubuntu34.86.2-2ubuntu14.86.2-2ubuntu24.86.2-2ubuntu2.14.86.2-2ubuntu2.2
4.86.2-2ubuntu2.3
exim
openSUSE:Leap 15.2
before 4.94.2-lp152.8.3.1
4.94.2-lp152.8.3.1
exim
SUSE:Package Hub 15 SP1
before 4.94.2-bp151.2.4.1
4.94.2-bp151.2.4.1
libspf2
SUSE:Package Hub 15 SP1
before 1.2.10-bp151.4.1
1.2.10-bp151.4.1
exim
SUSE:Package Hub 15 SP2
before 4.94.2-bp152.6.4.1
4.94.2-bp152.6.4.1
libspf2
SUSE:Package Hub 15 SP2
before 1.2.10-bp152.5.1
1.2.10-bp152.5.1
exim
openSUSE:Tumbleweed
before 4.94.2-4.2
4.94.2-4.2

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubc0llision/exim-vuln-poc2018-03-16
Exploit-DBExim < 4.90.1 - 'base64d' Remote Code Execution2018-05-02
Exploit-DBexim 4.90 - Remote Code Execution2018-10-24
PoC in GitHubberaphin/CVE-2018-67892018-11-08
PoC in GitHubsynacktiv/Exim-CVE-2018-67892019-10-10
PoC in GitHubmartinclauss/exim-rce-cve-2018-67892020-03-02
PoC in GitHubthistehneisen/CVE-2018-6789-Python32023-08-05

History

History
RecordedChangedSources
exploitation
affected, aliases, exploits, referencesOSV
first indexedCVE List, EUVD, Exploit-DB, GitHub Advisories, CISA KEV, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2018-6789 is a critical vulnerability (CVSS 9.8) in Exim, published February 7, 2018. CISA lists it as known to be exploited, since November 3, 2021. EUVD reports exploitation since November 3, 2021. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 82.1%, the 99th percentile. Fixed in exim 4.90.1-r0.

References

Show 59 moreShow less
This page doesn't list everything

Left out here: the rest of 3 source descriptions. The JSON record has them.

MoveEnter Open