From e9fcdd2e69052412e67cbbf6e8b5bdc5b545d364 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Fri, 14 Oct 2016 12:02:12 +0100 Subject: [PATCH] add test for CVE-2016-7053 Reviewed-by: Richard Levitte --- test/d2i-tests/bad-cms.der | 1 + test/d2i_test.c | 4 +++- test/recipes/25-test_d2i.t | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 test/d2i-tests/bad-cms.der diff --git a/test/d2i-tests/bad-cms.der b/test/d2i-tests/bad-cms.der new file mode 100644 index 0000000000..19cd3cc3f2 --- /dev/null +++ b/test/d2i-tests/bad-cms.der @@ -0,0 +1 @@ +0 *†H†÷   010 \ No newline at end of file diff --git a/test/d2i_test.c b/test/d2i_test.c index 8dbb8f14ec..32c0b0fb93 100644 --- a/test/d2i_test.c +++ b/test/d2i_test.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "e_os.h" static const ASN1_ITEM *item_type; @@ -149,7 +150,8 @@ int main(int argc, char **argv) ASN1_ITEM_ref(ASN1_ANY), ASN1_ITEM_ref(X509), ASN1_ITEM_ref(GENERAL_NAME), - ASN1_ITEM_ref(ASN1_INTEGER) + ASN1_ITEM_ref(ASN1_INTEGER), + ASN1_ITEM_ref(CMS_ContentInfo) }; static error_enum expected_errors[] = { diff --git a/test/recipes/25-test_d2i.t b/test/recipes/25-test_d2i.t index 9db0b2be45..e663534c4d 100644 --- a/test/recipes/25-test_d2i.t +++ b/test/recipes/25-test_d2i.t @@ -15,7 +15,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/; setup("test_d2i"); -plan tests => 13; +plan tests => 14; ok(run(test(["d2i_test", "X509", "decode", srctop_file('test','d2i-tests','bad_cert.der')])), @@ -79,3 +79,10 @@ ok(run(test(["d2i_test", "ASN1_INTEGER", "decode", ok(run(test(["d2i_test", "ASN1_INTEGER", "decode", srctop_file('test','d2i-tests','bad-int-padminus1.der')])), "Running d2i_test bad-int-padminus1.der INTEGER"); + +# Invalid CMS structure with decode error in CHOICE value. +# Test for CVE-2016-7053 + +ok(run(test(["d2i_test", "CMS_ContentInfo", "decode", + srctop_file('test','d2i-tests','bad-cms.der')])), + "Running d2i_test bad-cms.der CMS ContentInfo"); -- 2.25.1