Several vulnerabilities have been fixed in OpenSMTPD 5.7.2:
- an oversight in the portable version of fgetln() that allows attackers to read and write out-of-bounds memory;
- multiple denial-of-service vulnerabilities that allow local users to kill or hang OpenSMTPD;
- a stack-based buffer overflow that allows local users to crash OpenSMTPD, or execute arbitrary code as the non-chrooted smtpd user;
- a hardlink attack (or race-conditioned symlink attack) that allows local users to unset the chflags() of arbitrary files;
- a hardlink attack that allows local users to read the first line of arbitrary files (for example, root's hash from /etc/master.passwd);
- a denial-of-service vulnerability that allows remote attackers to fill OpenSMTPD's queue or mailbox hard-disk partition;
- an out-of-bounds memory read that allows remote attackers to crash OpenSMTPD, or leak information and defeat the ASLR protection;
- a use-after-free vulnerability that allows remote attackers to crash OpenSMTPD, or execute arbitrary code as the non-chrooted smtpd user;
Further details can be found in Qualys' audit report:
http://seclists.org/oss-sec/2015/q4/17
MITRE has assigned one CVE for the use-after-free vulnerability; additional CVEs may be assigned:
http://seclists.org/oss-sec/2015/q4/23
External References:
https://www.opensmtpd.org/announces/release-5.7.2.txt http://seclists.org/oss-sec/2015/q4/17
asciiloadsockaddr in smtpd in OpenBSD before 7.1 errata 024 and 7.2 before errata 020, and OpenSMTPD Portable before 7.0.0-portable commit f748277, can abort upon a connection from a local, scoped IPv6 address.
smtpd/lkafilter.c in OpenSMTPD before 6.8.0p1, in certain configurations, allows remote attackers to cause a denial of service (NULL pointer dereference and daemon crash) via a crafted pattern of client activity, because the filter state machine does not properly maintain the I/O channel between the SMTP engine and the filters layer.
smtpd/table.c in OpenSMTPD before 6.8.0p1 lacks a certain regfree, which might allow attackers to trigger a "very significant" memory leak via messages to an instance that performs many regex lookups.