|
| 1 | +From: Daniel Kubec <kubec@openssl.org> |
| 2 | +Date: Tue, 17 Mar 2026 11:14:56 +0100 |
| 3 | +Subject: Added test for CVE-2026-28388 |
| 4 | + |
| 5 | +--- |
| 6 | + test/certs/cve-2026-28388-ca.pem | 19 +++++++++++++++++++ |
| 7 | + test/certs/cve-2026-28388-crls.pem | 22 ++++++++++++++++++++++ |
| 8 | + test/certs/cve-2026-28388-leaf.pem | 19 +++++++++++++++++++ |
| 9 | + test/recipes/25-test_verify.t | 14 +++++++++++++- |
| 10 | + 4 files changed, 73 insertions(+), 1 deletion(-) |
| 11 | + create mode 100644 test/certs/cve-2026-28388-ca.pem |
| 12 | + create mode 100644 test/certs/cve-2026-28388-crls.pem |
| 13 | + create mode 100644 test/certs/cve-2026-28388-leaf.pem |
| 14 | + |
| 15 | +diff --git a/test/certs/cve-2026-28388-ca.pem b/test/certs/cve-2026-28388-ca.pem |
| 16 | +new file mode 100644 |
| 17 | +index 000000000000..9e36d11c4b4b |
| 18 | +--- /dev/null |
| 19 | ++++ b/test/certs/cve-2026-28388-ca.pem |
| 20 | +@@ -0,0 +1,19 @@ |
| 21 | ++-----BEGIN CERTIFICATE----- |
| 22 | ++MIIDFTCCAf2gAwIBAgIUOl5NN/jfsuLU9JSGLZAfRzviF+owDQYJKoZIhvcNAQEL |
| 23 | ++BQAwEjEQMA4GA1UEAwwHVGVzdCBDQTAeFw0yNjAzMTcwODE5NDdaFw0yNzAzMTcw |
| 24 | ++ODE5NDdaMBIxEDAOBgNVBAMMB1Rlc3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB |
| 25 | ++DwAwggEKAoIBAQD0m4KETjF0c25spNWUiNChWP0GalDL0gVDFbtAoMVF/lvlZEcp |
| 26 | ++hcg62ifHJRPntWyVAmH70DAI87cWzl/73QYGaOcMVcH5yEM31BoK83FvhsS3RTPO |
| 27 | ++FSrNCHaZrrWuga+QkBmMcR6qX7GF5eb6ASMBsLuuDqbkCRbTJ2ryhYeWF+VFemBF |
| 28 | ++pSHpcinSSLvswTVbZiCqmoy0WkK8eiyfLMZA17PgVLQpyPZ3rp5YG5vEZZoqFc/f |
| 29 | ++1bCHjwQ7fNdLCEMqPvE/I0mg2skRClb1L1Vieud/jmjL8nVd9I12j1eUOcSKtCkW |
| 30 | ++nj4BFa7TRz13sN3LZOFvV774ZaXRJ1GxoAlnAgMBAAGjYzBhMB0GA1UdDgQWBBSt |
| 31 | ++UxfaVbV9QMmfwMoImdgi4MZHzTAfBgNVHSMEGDAWgBStUxfaVbV9QMmfwMoImdgi |
| 32 | ++4MZHzTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0B |
| 33 | ++AQsFAAOCAQEA84w49n0pPJlqiD1/mn3pUZ66lBP0fFZiCuV/3YatBZcW+xcboW0Q |
| 34 | ++xImYztjZo0i+sQLZOalI4GoBqD77Dv4Qas0QoJZIp0wM8DjE3YcudCr4cpUhT1XC |
| 35 | ++ruHVHQA9bY5rW0GsfUBW6/3RbRpiK4SaFG3sUBbXPo0dC2EaLDjpLM7o2UljRrWu |
| 36 | ++d/vg6ieKuAicexLxqQLdM4SxjyvBpCwHg/dnMxawSj4Xhks1BHJ0hTLKJGDgfVHh |
| 37 | ++ex8+878u6Gf7fAOZa5idWUgTvdt5WHSW5x+Tm/P6LGG3HkM425ZU6BLTCHONoBud |
| 38 | ++cOlfWTTuIyweX5TRL5HY3SuO1cpMBpjiAA== |
| 39 | ++-----END CERTIFICATE----- |
| 40 | +diff --git a/test/certs/cve-2026-28388-crls.pem b/test/certs/cve-2026-28388-crls.pem |
| 41 | +new file mode 100644 |
| 42 | +index 000000000000..46cbd7876dcd |
| 43 | +--- /dev/null |
| 44 | ++++ b/test/certs/cve-2026-28388-crls.pem |
| 45 | +@@ -0,0 +1,22 @@ |
| 46 | ++-----BEGIN X509 CRL----- |
| 47 | ++MIIBizB1AgEBMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNVBAMMB1Rlc3QgQ0EXDTI2 |
| 48 | ++MDMxNzA4MTk0N1oXDTI2MDQxNjA4MTk0N1qgLzAtMB8GA1UdIwQYMBaAFK1TF9pV |
| 49 | ++tX1AyZ/AygiZ2CLgxkfNMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQBl |
| 50 | ++3vVknchCNA/oW0ovtnrE+xQs8yAk3uElooQlw88moTcts2YAcKWl49lnNWZk/RbF |
| 51 | ++Zs8m+MUuNb2W861siuvY3EwnSKVaJB2tKPfCRBP4xt+Q0g/Tn5CWxzpzHjQfLT6l |
| 52 | ++pvWOwaO7aE6bthX7MQ9XBpnHSPxsbul+MhV5PER11BYZGVh5MH0XxfMI0jDHFh2M |
| 53 | ++klTamgaao3TkVOI3OQPgzUx/q0Lz/YoCIH0pYGGP6KTGUX2x7UfD1tcIOcUp6tvO |
| 54 | ++6hG3utMgJOpZJl9yMzhG+ZURjbz4MSbBM0FVIaWnBn2VzY1jHGky0nK83IZhiddf |
| 55 | ++OohWoSH8tqwrNFZkblAH |
| 56 | ++-----END X509 CRL----- |
| 57 | ++-----BEGIN X509 CRL----- |
| 58 | ++MIIBjjB4AgEBMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNVBAMMB1Rlc3QgQ0EXDTI2 |
| 59 | ++MDEwODEyMDAwMFoXDTI2MDIwODEyMDAwMFqgMjAwMB8GA1UdIwQYMBaAFK1TF9pV |
| 60 | ++tX1AyZ/AygiZ2CLgxkfNMA0GA1UdGwEB/wQDAgEBMA0GCSqGSIb3DQEBCwUAA4IB |
| 61 | ++AQCyYxa5iVUFxBpdXgBGSMqkuxJqQzVni8nXK0DiXHfgbTud+HD5Qp/6PX2EQuwK |
| 62 | ++SrT0yeNJBU1gxxMMsbdA0yVTPa7N2Ny39mjq/27yBXduiljo3Gs4NLEW9grJRnep |
| 63 | ++WOD1cQe3Fea5HlEfUoQJF1WVekF6CnOSqESaDvTAzqpZd7pxU8cuduiRJPin93ki |
| 64 | ++1nicQAU/G4Td190+JEAWD3/dJTg2LF6LKrmHiv2ZUTuNsVBfcbhFSoC6FpnjFUAI |
| 65 | ++kF8EgJpuBEfqV6erIuT1GD+5p1QGNqdcNl7LO9erJaUFnssJBJtj84iXd7RZARNs |
| 66 | ++njcibOSKC9YWgNmZUy0QV5D8 |
| 67 | ++-----END X509 CRL----- |
| 68 | +diff --git a/test/certs/cve-2026-28388-leaf.pem b/test/certs/cve-2026-28388-leaf.pem |
| 69 | +new file mode 100644 |
| 70 | +index 000000000000..02b22997cdd8 |
| 71 | +--- /dev/null |
| 72 | ++++ b/test/certs/cve-2026-28388-leaf.pem |
| 73 | +@@ -0,0 +1,19 @@ |
| 74 | ++-----BEGIN CERTIFICATE----- |
| 75 | ++MIIDHTCCAgWgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdUZXN0 |
| 76 | ++IENBMB4XDTI2MDMxNzA4MTk0N1oXDTI3MDMxNzA4MTk0N1owFDESMBAGA1UEAwwJ |
| 77 | ++VGVzdCBMZWFmMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqx7jpC6+ |
| 78 | ++nRZ4ol6sShkpv04hGYtt7y+Ns4oIfdQTqo57DItFab8D8cH04zR8NND42MMnsPPn |
| 79 | ++Ovh9gv2l1mj9ZfwgXI5PvaKc6CoXvXb0ttekdDUS1iw9g04BxIXTDANxsdSXrCDd |
| 80 | ++Npyr1Pxdo3N2fiH6qN9/Lsh7yg0vJW/aJzdvhLcCTFcr89qmCsh17XfcTR0wZJXP |
| 81 | ++QdlRib9EK8aa6aKOYmm44SBbuXXyWojhheUaqVuzDj6A0L9opmh/DVXa9bdIN/FX |
| 82 | ++CKJB+d60Qxy5pKwpzDDxbCdG2vA1U2cPz8yAgelFG5AmXSHF7Id4G6GTCAY6PbTO |
| 83 | ++Jy2Z4I6NY+mj5wIDAQABo3wwejAdBgNVHQ4EFgQUlf2YZ93MvS4kZm7fshosgp+J |
| 84 | ++ImkwHwYDVR0jBBgwFoAUrVMX2lW1fUDJn8DKCJnYIuDGR80wCQYDVR0TBAIwADAt |
| 85 | ++BgNVHS4EJjAkMCKgIKAehhxodHRwOi8vZXhhbXBsZS5jb20vZGVsdGEucGVtMA0G |
| 86 | ++CSqGSIb3DQEBCwUAA4IBAQDoNAQGLS0Juf3i2fhuVQyWIFvNIMElLexeLnnd/y80 |
| 87 | ++13nsP68ZGT2D3DoHQSz3SL7sNjLBc2CiUVftdaRQ4dNCz8sBY5BRTS5XEGbbTAFZ |
| 88 | ++bQUReykuuTy83CGw/JYN6YT/OHcf4gEhUnWtRMCmIz3J/NMRVSRnpV2Ezjltm/Q+ |
| 89 | ++emFS/QclRhkP6Vu+lwM/nV6uAN8T7Ba68Hym2MN0clozrpoKeqFouB7D0i+iCZMw |
| 90 | ++zbac5as0hn7Fm+HGTbfTs2/fqUslvE6PmagepceP37pTSSVmYRmdpOD2cyCb30A+ |
| 91 | ++nJFGQg7PcacGSL1re65W35XzdU8Si8OYD+PxjDaRbPcP |
| 92 | ++-----END CERTIFICATE----- |
| 93 | +diff --git a/test/recipes/25-test_verify.t b/test/recipes/25-test_verify.t |
| 94 | +index 673c3d5f1772..fcb343b9ee3a 100644 |
| 95 | +--- a/test/recipes/25-test_verify.t |
| 96 | ++++ b/test/recipes/25-test_verify.t |
| 97 | +@@ -30,7 +30,7 @@ sub verify { |
| 98 | + run(app([@args])); |
| 99 | + } |
| 100 | + |
| 101 | +-plan tests => 203; |
| 102 | ++plan tests => 204; |
| 103 | + |
| 104 | + # Canonical success |
| 105 | + ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]), |
| 106 | +@@ -594,6 +594,18 @@ ok(!verify("ee-cert-policies-bad", "", ["root-cert"], ["ca-pol-cert"], |
| 107 | + "-explicit_policy"), |
| 108 | + "Bad certificate policy"); |
| 109 | + |
| 110 | ++# CVE-2026-28388 |
| 111 | ++my $cve_28388_stderr = "cve-2026-28388.err"; |
| 112 | ++run(app(["openssl", "verify", |
| 113 | ++ "-attime", "1739527200", |
| 114 | ++ "-CAfile", srctop_file(@certspath, "cve-2026-28388-ca.pem"), |
| 115 | ++ "-crl_check", "-use_deltas", |
| 116 | ++ "-CRLfile", srctop_file(@certspath, "cve-2026-28388-crls.pem"), |
| 117 | ++ srctop_file(@certspath, "cve-2026-28388-leaf.pem")], |
| 118 | ++ stderr => $cve_28388_stderr)); |
| 119 | ++ok(grep(/CRL is not yet valid/, do { open my $fh, '<', $cve_28388_stderr; <$fh> }), |
| 120 | ++ "CVE-2026-28388"); |
| 121 | ++ |
| 122 | + # CAstore option |
| 123 | + my $rootcertname = "root-cert"; |
| 124 | + my $rootcert = srctop_file(@certspath, "${rootcertname}.pem"); |
0 commit comments