Package: release.debian.org Severity: normal Tags: bullseye X-Debbugs-Cc: python-aiosm...@packages.debian.org, d...@dalerichards.net Control: affects -1 + src:python-aiosmtpd User: release.debian....@packages.debian.org Usertags: pu
[ Reason ] This update resolves two security vulnerabilities present in the version of python-aiosmtpd in Bullseye (1.2.2-1): * CVE-2024-27305 - SMTP smuggling due to poor handling of non-standard line endings (Bug: #1066820) * CVE-2024-34083 - STARTTLS unencrypted command injection (Bug: #1072119) These have both been deemed unworthy of a DSA, but the Security Team have suggested we update this package for the next Bullseye point release. [ Impact ] Without this update, Debian 11 systems running aiosmtpd would remain vulnerable to the two CVEs listed above. [ Tests ] The upstream package includes a comprehensive suite of tests, all of which are passing with this new version. Additionally, I have installed the new package on a Bullseye test box and performed manual testing, confirming that the package's main functionality works and that the two vulnerabilties are correctly resolved. [ Risks ] The code changes are minor, and bring aiosmtpd into compliance with the relevant sections of RFC 3207[1] and RFC 5321[2]. The update can therefore be considered low risk, and will not cause an issue with any RFC-compliant SMTP client or MTA. [ Checklist ] [x] *all* changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in (old)stable [x] the issue is verified as fixed in unstable [ Changes ] * CVE-2024-27305 - Patch aiosmtpd/smtp.py to accept only <CRLF> as a line terminator, as mandated by RFC 5321[2]. This patch has been adapted from the fix committed upstream[3]. * CVE-2024-34083 - Patch aiosmtpd/smtp.py to discard any remaining unencrypted data in the input buffer upon completion of a STARTTLS handshake, as mandated by RFC 3207[1]. This patch has been adapted from the fix committed upstream[4]. [ Other info ] References: [1] https://datatracker.ietf.org/doc/html/rfc3207#page-7 [2] https://datatracker.ietf.org/doc/html/rfc5321#section-2.3.8 [3] https://github.com/aio- libs/aiosmtpd/commit/24b6c79c8921cf1800e27ca144f4f37023982bbb [4] https://github.com/aio- libs/aiosmtpd/commit/b3a4a2c6ecfd228856a20d637dc383541fcdbfda
diff -Nru python-aiosmtpd-1.2.2/debian/changelog python-aiosmtpd-1.2.2/debian/changelog --- python-aiosmtpd-1.2.2/debian/changelog 2020-12-19 15:05:26.000000000 +0000 +++ python-aiosmtpd-1.2.2/debian/changelog 2024-06-14 14:09:42.000000000 +0100 @@ -1,3 +1,13 @@ +python-aiosmtpd (1.2.2-1+deb11u1) bullseye; urgency=medium + + * Team upload. + * CVE-2024-27305 - SMTP smuggling due to poor handling of + non-standard line endings (Closes: #1066820) + * CVE-2024-34083 - STARTTLS unencrypted command injection + (Closes: #1072119) + + -- Dale Richards <d...@dalerichards.net> Fri, 14 Jun 2024 14:09:42 +0100 + python-aiosmtpd (1.2.2-1) unstable; urgency=medium [ Ondřej Nový ] diff -Nru python-aiosmtpd-1.2.2/debian/patches/0005-cve-2024-34083.patch python-aiosmtpd-1.2.2/debian/patches/0005-cve-2024-34083.patch --- python-aiosmtpd-1.2.2/debian/patches/0005-cve-2024-34083.patch 1970-01-01 01:00:00.000000000 +0100 +++ python-aiosmtpd-1.2.2/debian/patches/0005-cve-2024-34083.patch 2024-06-14 14:09:42.000000000 +0100 @@ -0,0 +1,19 @@ +Description: CVE-2024-34083 - STARTTLS unencrypted command injection +Author: Dale Richards <d...@dalerichards.net> +Origin: upstream, https://github.com/aio-libs/aiosmtpd/commit/b3a4a2c6ecfd228856a20d637dc383541fcdbfda +Bug: https://github.com/aio-libs/aiosmtpd/security/advisories/GHSA-wgjv-9j3q-jhg8 +Last-Update: 2024-06-07 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/aiosmtpd/smtp.py ++++ b/aiosmtpd/smtp.py +@@ -209,6 +209,9 @@ + self._reader._transport = transport + self._writer._transport = transport + self.transport = transport ++ # Discard any leftover unencrypted data ++ # See https://tools.ietf.org/html/rfc3207#page-7 ++ self._reader._buffer.clear() # type: ignore[attr-defined] + # Do SSL certificate checking as rfc3207 part 4.1 says. Why is + # _extra a protected attribute? + self.session.ssl = self._tls_protocol._extra diff -Nru python-aiosmtpd-1.2.2/debian/patches/0006-cve-2024-27305.patch python-aiosmtpd-1.2.2/debian/patches/0006-cve-2024-27305.patch --- python-aiosmtpd-1.2.2/debian/patches/0006-cve-2024-27305.patch 1970-01-01 01:00:00.000000000 +0100 +++ python-aiosmtpd-1.2.2/debian/patches/0006-cve-2024-27305.patch 2024-06-14 14:09:42.000000000 +0100 @@ -0,0 +1,30 @@ +Description: CVE-2024-27305 - SMTP smuggling + SMTP smuggling due to poor handling of + non-standard line endings +Author: Dale Richards <d...@dalerichards.net> +Origin: upstream, https://github.com/aio-libs/aiosmtpd/commit/24b6c79c8921cf1800e27ca144f4f37023982bbb +Bug: https://github.com/aio-libs/aiosmtpd/security/advisories/GHSA-pr2m-px7j-xg65 +Last-Update: 2024-06-07 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/aiosmtpd/smtp.py ++++ b/aiosmtpd/smtp.py +@@ -31,7 +31,7 @@ + + DATA_SIZE_DEFAULT = 33554432 + EMPTYBYTES = b'' +-NEWLINE = '\n' ++NEWLINE = '\r\n' + + + class _Missing: +@@ -876,7 +876,8 @@ + size_exceeded = False + while self.transport is not None: # pragma: nobranch + try: +- line = await self._reader.readline() ++ # https://datatracker.ietf.org/doc/html/rfc5321#section-2.3.8 ++ line: bytes = await self._reader.readuntil(b'\r\n') + log.debug('DATA readline: %s', line) + except asyncio.CancelledError: + # The connection got reset during the DATA command. diff -Nru python-aiosmtpd-1.2.2/debian/patches/series python-aiosmtpd-1.2.2/debian/patches/series --- python-aiosmtpd-1.2.2/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ python-aiosmtpd-1.2.2/debian/patches/series 2024-06-14 14:09:42.000000000 +0100 @@ -0,0 +1,2 @@ +0006-cve-2024-27305.patch +0005-cve-2024-34083.patch