diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2021-09-08 11:56:22 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-09-13 16:51:31 +0200 |
commit | 364f174724ef115c63d5e5dc1d3342c8a43b1cca (patch) | |
tree | 9856fb764ee026d4c55c9525496b541a79af7800 /tests | |
parent | 43157490a5054bd24256fe12876931e8abc9df49 (diff) | |
download | curl-364f174724ef115c63d5e5dc1d3342c8a43b1cca.tar.gz |
ftp,imap,pop3: do not ignore --ssl-reqd
In imap and pop3, check if TLS is required even when capabilities
request has failed.
In ftp, ignore preauthentication (230 status of server greeting) if TLS
is required.
Bug: https://curl.se/docs/CVE-2021-22946.html
CVE-2021-22946
Diffstat (limited to 'tests')
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test984 | 56 | ||||
-rw-r--r-- | tests/data/test985 | 54 | ||||
-rw-r--r-- | tests/data/test986 | 53 |
4 files changed, 165 insertions, 0 deletions
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 59e1145fc..8e05ee907 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -118,6 +118,8 @@ test954 test955 test956 test957 test958 test959 test960 test961 test962 \ test963 test964 test965 test966 test967 test968 test969 test970 test971 \ test972 \ \ +test984 test985 test986 \ +\ test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \ test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \ test1016 test1017 test1018 test1019 test1020 test1021 test1022 test1023 \ diff --git a/tests/data/test984 b/tests/data/test984 new file mode 100644 index 000000000..e573f23c1 --- /dev/null +++ b/tests/data/test984 @@ -0,0 +1,56 @@ +<testcase> +<info> +<keywords> +IMAP +STARTTLS +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY CAPABILITY A001 BAD Not implemented +</servercmd> +</reply> + +# +# Client-side +<client> +<features> +SSL +</features> +<server> +imap +</server> + <name> +IMAP require STARTTLS with failing capabilities + </name> + <command> +imap://%HOSTIP:%IMAPPORT/%TESTNUMBER -T log/upload%TESTNUMBER -u user:secret --ssl-reqd +</command> +<file name="log/upload%TESTNUMBER"> +Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) +From: Fred Foobar <foobar@example.COM> +Subject: afternoon meeting +To: joe@example.com +Message-Id: <B27397-0100000@example.COM> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; CHARSET=US-ASCII + +Hello Joe, do you think we can meet at 3:30 tomorrow? +</file> +</client> + +# +# Verify data after the test has been "shot" +<verify> +# 64 is CURLE_USE_SSL_FAILED +<errorcode> +64 +</errorcode> +<protocol> +A001 CAPABILITY
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test985 b/tests/data/test985 new file mode 100644 index 000000000..d0db4aadf --- /dev/null +++ b/tests/data/test985 @@ -0,0 +1,54 @@ +<testcase> +<info> +<keywords> +POP3 +STARTTLS +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY CAPA -ERR Not implemented +</servercmd> +<data nocheck="yes"> +From: me@somewhere +To: fake@nowhere + +body + +-- + yours sincerely +</data> +</reply> + +# +# Client-side +<client> +<features> +SSL +</features> +<server> +pop3 +</server> + <name> +POP3 require STARTTLS with failing capabilities + </name> + <command> +pop3://%HOSTIP:%POP3PORT/%TESTNUMBER -u user:secret --ssl-reqd + </command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +# 64 is CURLE_USE_SSL_FAILED +<errorcode> +64 +</errorcode> +<protocol> +CAPA
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test986 b/tests/data/test986 new file mode 100644 index 000000000..a709437a4 --- /dev/null +++ b/tests/data/test986 @@ -0,0 +1,53 @@ +<testcase> +<info> +<keywords> +FTP +STARTTLS +</keywords> +</info> + +# +# Server-side +<reply> +<servercmd> +REPLY welcome 230 Welcome +REPLY AUTH 500 unknown command +</servercmd> +</reply> + +# Client-side +<client> +<features> +SSL +</features> +<server> +ftp +</server> + <name> +FTP require STARTTLS while preauthenticated + </name> +<file name="log/test%TESTNUMBER.txt"> +data + to + see +that FTPS +works + so does it? +</file> + <command> +--ssl-reqd --ftp-ssl-control ftp://%HOSTIP:%FTPPORT/%TESTNUMBER -T log/test%TESTNUMBER.txt -u user:secret +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +# 64 is CURLE_USE_SSL_FAILED +<errorcode> +64 +</errorcode> +<protocol> +AUTH SSL
+AUTH TLS
+</protocol> +</verify> +</testcase> |