!1 package init
From: @dou33 Reviewed-by: @tanyulong2021 Signed-off-by: @tanyulong2021
This commit is contained in:
commit
7d3ea32cc1
11
libetpan-1.9.2-cryptopolicy.patch
Normal file
11
libetpan-1.9.2-cryptopolicy.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -Naur libetpan-1.9.2-orig/src/data-types/mailstream_ssl.c libetpan-1.9.2/src/data-types/mailstream_ssl.c
|
||||||
|
--- libetpan-1.9.2-orig/src/data-types/mailstream_ssl.c 2018-12-18 00:18:48.000000000 +0100
|
||||||
|
+++ libetpan-1.9.2/src/data-types/mailstream_ssl.c 2018-12-24 20:12:06.870080101 +0100
|
||||||
|
@@ -622,7 +622,6 @@
|
||||||
|
gnutls_certificate_set_retrieve_function(xcred, mailstream_gnutls_client_cert_cb);
|
||||||
|
#endif
|
||||||
|
gnutls_set_default_priority(session);
|
||||||
|
- gnutls_priority_set_direct(session, "NORMAL", NULL);
|
||||||
|
|
||||||
|
gnutls_record_disable_padding(session);
|
||||||
|
gnutls_dh_set_prime_bits(session, 512);
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
From 1002a0121a8f5a9aee25357769807f2c519fa50b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Damian Poddebniak <duesee@users.noreply.github.com>
|
||||||
|
Date: Fri, 24 Jul 2020 19:39:53 +0200
|
||||||
|
Subject: [PATCH 1/2] Detect extra data after STARTTLS response and exit (#387)
|
||||||
|
|
||||||
|
---
|
||||||
|
src/low-level/imap/mailimap.c | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/low-level/imap/mailimap.c b/src/low-level/imap/mailimap.c
|
||||||
|
index bb17119..4ffcf55 100644
|
||||||
|
--- a/src/low-level/imap/mailimap.c
|
||||||
|
+++ b/src/low-level/imap/mailimap.c
|
||||||
|
@@ -2428,6 +2428,13 @@ int mailimap_starttls(mailimap * session)
|
||||||
|
|
||||||
|
mailimap_response_free(response);
|
||||||
|
|
||||||
|
+ // Detect if the server send extra data after the STARTTLS response.
|
||||||
|
+ // This *may* be a "response injection attack".
|
||||||
|
+ if (session->imap_stream->read_buffer_len != 0) {
|
||||||
|
+ // Since it is also an IMAP protocol violation, exit.
|
||||||
|
+ return MAILIMAP_ERROR_STARTTLS;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
switch (error_code) {
|
||||||
|
case MAILIMAP_RESP_COND_STATE_OK:
|
||||||
|
return MAILIMAP_NO_ERROR;
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
From 298460a2adaabd2f28f417a0f106cb3b68d27df9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Ising <Murgeye@users.noreply.github.com>
|
||||||
|
Date: Fri, 24 Jul 2020 19:40:48 +0200
|
||||||
|
Subject: [PATCH 2/2] Detect extra data after STARTTLS responses in SMTP and
|
||||||
|
POP3 and exit (#388)
|
||||||
|
|
||||||
|
* Detect extra data after STLS response and return error
|
||||||
|
|
||||||
|
* Detect extra data after SMTP STARTTLS response and return error
|
||||||
|
---
|
||||||
|
src/low-level/pop3/mailpop3.c | 8 ++++++++
|
||||||
|
src/low-level/smtp/mailsmtp.c | 8 ++++++++
|
||||||
|
2 files changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/low-level/pop3/mailpop3.c b/src/low-level/pop3/mailpop3.c
|
||||||
|
index ab9535b..e2124bf 100644
|
||||||
|
--- a/src/low-level/pop3/mailpop3.c
|
||||||
|
+++ b/src/low-level/pop3/mailpop3.c
|
||||||
|
@@ -959,6 +959,14 @@ int mailpop3_stls(mailpop3 * f)
|
||||||
|
|
||||||
|
if (r != RESPONSE_OK)
|
||||||
|
return MAILPOP3_ERROR_STLS_NOT_SUPPORTED;
|
||||||
|
+
|
||||||
|
+ // Detect if the server send extra data after the STLS response.
|
||||||
|
+ // This *may* be a "response injection attack".
|
||||||
|
+ if (f->pop3_stream->read_buffer_len != 0) {
|
||||||
|
+ // Since it is also protocol violation, exit.
|
||||||
|
+ // There is no error type for STARTTLS errors in POP3
|
||||||
|
+ return MAILPOP3_ERROR_SSL;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return MAILPOP3_NO_ERROR;
|
||||||
|
}
|
||||||
|
diff --git a/src/low-level/smtp/mailsmtp.c b/src/low-level/smtp/mailsmtp.c
|
||||||
|
index b7fc459..3145cad 100644
|
||||||
|
--- a/src/low-level/smtp/mailsmtp.c
|
||||||
|
+++ b/src/low-level/smtp/mailsmtp.c
|
||||||
|
@@ -1111,6 +1111,14 @@ int mailesmtp_starttls(mailsmtp * session)
|
||||||
|
return MAILSMTP_ERROR_STREAM;
|
||||||
|
r = read_response(session);
|
||||||
|
|
||||||
|
+ // Detect if the server send extra data after the STARTTLS response.
|
||||||
|
+ // This *may* be a "response injection attack".
|
||||||
|
+ if (session->stream->read_buffer_len != 0) {
|
||||||
|
+ // Since it is also protocol violation, exit.
|
||||||
|
+ // There is no general error type for STARTTLS errors in SMTP
|
||||||
|
+ return MAILSMTP_ERROR_SSL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
switch (r) {
|
||||||
|
case 220:
|
||||||
|
return MAILSMTP_NO_ERROR;
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
||||||
BIN
libetpan-1.9.4.tar.gz
Normal file
BIN
libetpan-1.9.4.tar.gz
Normal file
Binary file not shown.
101
libetpan.spec
Normal file
101
libetpan.spec
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
Name: libetpan
|
||||||
|
Version: 1.9.4
|
||||||
|
Release: 6
|
||||||
|
Summary: Portable, efficient middle-ware for different kinds of mail access
|
||||||
|
|
||||||
|
License: BSD
|
||||||
|
URL: http://www.etpan.org/
|
||||||
|
Source0: https://github.com/dinhviethoa/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
# system crypto policy (see rhbz#1179310)
|
||||||
|
Patch10: libetpan-1.9.2-cryptopolicy.patch
|
||||||
|
# Upstream patches
|
||||||
|
#
|
||||||
|
# CVE-2020-15953
|
||||||
|
# https://github.com/dinhvh/libetpan/issues/386
|
||||||
|
# Detect extra data after STARTTLS response and exit
|
||||||
|
# https://github.com/dinhvh/libetpan/pull/387
|
||||||
|
Patch101: libetpan-1.9.4-0001-Detect-extra-data-after-STARTTLS-response-and-exit-3.patch
|
||||||
|
# Detect extra data after STARTTLS responses in SMTP and POP3 and exit
|
||||||
|
# https://github.com/dinhvh/libetpan/pull/388
|
||||||
|
Patch102: libetpan-1.9.4-0002-Detect-extra-data-after-STARTTLS-responses-in-SMTP-a.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: liblockfile-devel
|
||||||
|
BuildRequires: libdb-devel < 5.4
|
||||||
|
BuildRequires: cyrus-sasl-devel
|
||||||
|
BuildRequires: gnutls-devel
|
||||||
|
BuildRequires: libtool
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
BuildRequires: autoconf automake
|
||||||
|
BuildRequires: make
|
||||||
|
# disabled by default in configure.ac accidentally
|
||||||
|
# https://github.com/dinhviethoa/libetpan/issues/221
|
||||||
|
# libcurl and libexpat not needed by Claws Mail:
|
||||||
|
# http://lists.claws-mail.org/pipermail/users/2016-January/015665.html
|
||||||
|
#BuildRequires: libcurl-devel expat-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
The purpose of this mail library is to provide a portable, efficient middle-ware
|
||||||
|
for different kinds of mail access. When using the drivers interface, the
|
||||||
|
interface is the same for all kinds of mail access, remote and local mailboxes.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development package for %{name}
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The %{name}-devel package contains the files needed for development
|
||||||
|
with %{name}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
#%patch0 -b .libetpan-config-script
|
||||||
|
sed -i.flags libetpan.pc.in \
|
||||||
|
-e 's|-letpan@LIBSUFFIX@.*$|-letpan@LIBSUFFIX@|'
|
||||||
|
%patch10 -p1 -b .crypto-policy
|
||||||
|
%patch101 -p1 -b .CVE-2020-15953-1
|
||||||
|
%patch102 -p1 -b .CVE-2020-15953-2
|
||||||
|
|
||||||
|
# 2013-08-05 F20 development, bz 992070: The configure scripts adds some
|
||||||
|
# extra libs to the GnuTLS link options, which cause rebuilds to fail, since
|
||||||
|
# gnutls-devel no longer pulls in libgcrypt-devel libgpg-error-devel
|
||||||
|
# [The alternative fix is to BR those packages, of course.]
|
||||||
|
grep 'GNUTLSLIB="-lgnutls -lgcrypt -lgpg-error -lz"' configure.ac || exit -1
|
||||||
|
sed -i '\@GNUTLSLIB=@s!-lgcrypt -lgpg-error -lz!!g' configure.ac
|
||||||
|
|
||||||
|
env NOCONFIGURE=1 ./autogen.sh
|
||||||
|
|
||||||
|
%build
|
||||||
|
#%global optflags %(echo %{optflags} | sed 's/-g /-g -Wno-format-truncation /')
|
||||||
|
%configure --disable-static --with-gnutls=yes --with-openssl=no
|
||||||
|
make LIBTOOL=%{_bindir}/libtool %{?_smp_mflags}
|
||||||
|
|
||||||
|
cd doc
|
||||||
|
make doc
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
rm -rf $RPM_BUILD_ROOT%{_libdir}/libetpan.{,l}a
|
||||||
|
|
||||||
|
iconv -f iso8859-1 -t utf-8 ChangeLog > ChangeLog.conv && mv -f ChangeLog.conv ChangeLog
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYRIGHT
|
||||||
|
%doc ChangeLog NEWS
|
||||||
|
%{_libdir}/%{name}.so.20
|
||||||
|
%{_libdir}/%{name}.so.20.*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%doc doc/API.html doc/README.html doc/DOCUMENTATION
|
||||||
|
%{_libdir}/pkgconfig/%{name}.pc
|
||||||
|
%{_includedir}/libetpan/
|
||||||
|
%{_includedir}/libetpan.h
|
||||||
|
%{_libdir}/%{name}.so
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wen Sep 22 2021 douyan <douyan@kylinos.cn> - 1.9.4-6
|
||||||
|
- Init package for openEuler
|
||||||
Loading…
x
Reference in New Issue
Block a user