crypto/x509 MTC: Strictly parse extensions in MTC verification

Add the missing check that the MTCProof's extensions field is a
well-formed list of MTCLogEntryExtension structures in strictly
ascending order by type, as required by section 5.2.1. Previously the
field was hashed wholesale as opaque bytes without being parsed. No
extension types are defined, so well-formed extensions are otherwise
still ignored.

Bug: 571178555
Change-Id: Ib25e7318ad9c27a4af5c972f34f93f3f6a6a6964
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/104509
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Lily Chen <chlily@google.com>
This commit is contained in:
Lily Chen authored and boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com committed 2026-10-22 12:43:17 -07:00
1 parent fdc425e3eb
commit 9b684de239
13 files changed
+396 -2

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ to verifying Merkle Tree Certificates (MTCs).
Test certificates were generated by running the demo tool
github.com/ietf-plants-wg/merkle-tree-certs/demo at revision
7f5561c8f105f40fcb32a420825778eb2964759b.
cc8797a94f4933e660f6ce369f3bfa5c6573db01.
The main corpus in this directory was generated using the demo tool with the
config at ./mtc_testdata_config.json. (The demo tool also generates unneeded
+66
View File
@@ -0,0 +1,66 @@
-----BEGIN CERTIFICATE PROPERTIES-----
AB0AAAAEgf1ZAQABABEADw6B/VmB/VkBAQICAIAAgA==
-----END CERTIFICATE PROPERTIES-----
-----BEGIN CERTIFICATE-----
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
Rw==
-----END CERTIFICATE-----
+65
View File
@@ -0,0 +1,65 @@
-----BEGIN CERTIFICATE PROPERTIES-----
AB0AAAAEgf1ZAQABABEADw6B/VmB/VkBAQICAIAAgA==
-----END CERTIFICATE PROPERTIES-----
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
+65
View File
@@ -0,0 +1,65 @@
-----BEGIN CERTIFICATE PROPERTIES-----
AB0AAAAEgf1ZAQABABEADw6B/VmB/VkBAQICAIAAgA==
-----END CERTIFICATE PROPERTIES-----
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
+65
View File
@@ -0,0 +1,65 @@
-----BEGIN CERTIFICATE PROPERTIES-----
AB0AAAAEgf1ZAQABABEADw6B/VmB/VkBAQICAIAAgA==
-----END CERTIFICATE PROPERTIES-----
-----BEGIN CERTIFICATE-----
MIILPDCB8qADAgECAgcBAAAAAAAlMAoGCCsGAQUFBwZDMBQxEjAQBggrBgEFBQcZ
Aw0Egf1ZATAeFw0yMDAxMDEwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMAAwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAATLGILXqW2z5I4vzs7AeEYPMr393JR3uwzzSMB/
ndUv4BXfwegcqmYDssmhgt/jJWFxWV41zG5+wB9w+55MtfRWo0MwQTAOBgNVHQ8B
Af8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwFwYDVR0RAQH/BA0wC4IJ
YS5leGFtcGxlMAoGCCsGAQUFBwZDA4IKNwAACAACAAAAAQAAAAAAAAAgAAAAAABA
AKDbIMGMtPBXj33Yp51YdX7dWko4SSiTX+bP+JU8UjawYzfjuh9FI7fwBAhYqNdu
XggktXdVAJUoWB8uH40sbHt9i0KI7f+SgI9loBAH9lNF4H3iOGiZYv/sBDQQPh/4
jSF0+XC9Dt7q37UpkcCJdZPO/GI/Qw4T/d6+ie4eJpFQFQpqe9bkCGo8khZ+o9fh
/uK7GvASFx3+lT3/CdrzHU3PAAl7BIH9WQEJdKfPs63LocW6egf1dLREUjU8Sv6C
odARH69tRuouTbzxl3ZVsi+ikbUVxIXe05bw+iTnMxFhlPDADlHvd5U1t60SYDK2
nIdVtsvYtVEYwRd8Bn4FQjdGE7p76L28+z3vZY3ZwyqiIneNRYluNih5ilCDvZaZ
fP42Lwgk1IFvdcCsi4WWitzKPMSiF+k5JH9lQoV9UmVPYY5hvv8R7mMcwArU3Mig
LaPtja+sIuecQNhbdawfqrXohPtpysgAXxlDn5bsJTsVgGKnuQAcA6ue1lKz0PzC
K9jAdi27tAMWloHa2ccy8KhOd2dOQgTkeAh3gTLh65egxNmgkj9dfDDxP/zI1ugn
RsBUJaJkul3QWAZaenjkVK7/tLCHNfUG/QOBMg0g6yv1dNFw8ektOU6D+8EbWsMS
XxSZ7sxdbq1XB27aX3HwcKGc8+rYnowIooJgdP5zB+MntBAKJRTpT83Ui93AOyg8
oxCndcnKVKfJ1tq3HPyHl9ElYpiwGV5SSRWCZ5wkH8OosVFP8txQWuJ07nb7hHW6
TgYLmRyouffv191fnDyHb0MrDOfRRa7vawfF4QtIfqnTX3pMi6rLXNIKtao6P3XU
2NcXNOfiLCFqhxmedgyG+I93nx8KWYsImtyLSLRh3hJLQEEqDlhlhDSyHCrWvjJr
QvBo1ZKRKG54IPbf5lZO/EOFJEgg+z6WOufsp7wQXVNrpBslizz0k5Lkwkfc0ocR
2GhWlQwolGdb+FUq2Ncxfv3fWWCUlxt76384b6o4BdrHPKDVz3mBGopQ8z5wX+dq
KaxtIGbNldBULHnNe2tycUquYnK06bdMB3sKCFtlPAgZj0OQZ/WG4CRvb16USeW7
7JEsozc9FAnvp9CcTHxXwhnbJpqG3gi4aoOUoK5Kr4ngtszPphIKNBo2GcRMv3WQ
dH8cMYAV9Qazvr2MaiD04nwOGMGozB4MYQcCuvpYWaHLj4fkWeab2MsdVPrnjxih
fEGiJqswsYmbPnr3WWMblD7p8iAM705OfQ5tdH5GD2IEMNxxxxjPTVNI7cE0H50N
IYUWWt7tsz7mi0dPHdTcvG2tA0Y2sPYNu8M5FIHhtu4RDYFecqW3LwDOo3t3vS8r
KvHJc2oXr9/hDd4mQukEFEJJY7dSn7jH7HzsyJ/2jpf/3fLSiQVoMz9fkyoQ/ITf
YY9IAzrx8nnITte2CiMI+Jse8jo46NAyj3Ep/ZYkl/2cq6Eu/8zazZ3MCxNJ3lUS
vAtrCEjOaUR1tLR7SlITYj0pU+QjQigKmuJ3r8jiC2vPj7H5o8y6QyhK35jHfGjx
CPuPxF6AntaUh0EYTpCMJ5bQM5EzAK5rCzmT2p/kxHD+X8SbJLbrVKxDZOvbhNm+
Dvj4YQfTe7dBll/G+k0orK1raVs0xHhdx8otEjIF/zIk4TlzVzJuZ0iDEKhFE1zD
mlHpnRD9TOKPLgIUp4H7gXw3eN6XEfDMd7qyjWeGwfmee8ea7kh7NL79sYcvZWuh
Z24pjahP0ki6CejYXqA3HVZiO3ZeGuHG2Bm7FWpe37Ytvfeba1azJ6P0qvDqmsn2
EVRZkB5xYNjKuiT+UCF4zEhIrUHwfgef2OrEPUNWpQNdl78FlJ+1Yw7ofNTIppdI
gek7HXFJD2njWhyX/WH+5bWbYjhwtrg9HGvD5k77rURev2HZm2T238XDlr8qSi4P
0br6W7hDB1keanFyVHBwpG0C5WtxjoWVK7R2i5P30bgCc9KzktZa1QPUMBpY42Ho
wW7OeCYazgHk1pU4zmCu90PVdPHUqUxI/fBcScGCfn0WzLYm0H2S3S13INB65e2S
uOtX4yLSPdfagCtG1aJwNMPuTorGRoWaJ1toBP/9lih3Rv/a7iXaDAXnb+gtAhro
MQOH4aKpQyT5dTHR/YsS39vnFsqpwJztMIkhndYgUa6fNeELNvqJs7E0jTYRP53H
/rt6zgVerlb4m/6HaehU8IDG9+sQL4apqDJ6WG1z+qmwKtRo+nXGmK/4QIfiysTY
sr9NEg2upmt2a+k33yL5RRi9AEdcb6FDxkyGd/h0UBMdjgaB7H14Fs/I+dt64mMZ
GPTVNn+uCVF/A+SNVioZ0ShwFRirGggvqu37iA9PzVX5DKs2snb8sNnJB0RJMo6F
me2ELhSd+Rk+5Xg5RS0iLpR9No7XxKLc+wM158Jge9lO7j9nENNprY58r3K0iXnV
vZ1S1Ao7BJI4Mo04+U6wcZNLF7okhpVsXoNoDBO3ZCf/d9l4szAFnP6+sVmlCi0H
XzsDF+m1qLAK0AEWI4Xm2Ov6pdPy37E6/XpkJi/4CNStex2fvN3jbeyXkJVgU8gy
ii1fI37uhSzBgfEx2OBRzG0eRyM3H8OCXUomApt9K/ozlIBz7ESGjO0nqmEjH8gr
3G7hm847mTpzVqQEVwVfaY5nSqLbUCy5zB8sDM4S5ocka/v8QD3wqJDjy3UU6qD9
v90k6N5YkFx6L3JQPYiWNvraDueDHIyDuqpNCFzWbmBVgE4w2yNImtaSmS+ySJxW
Spmwj7B+4iAqvwANO2po56nD+kkA6ymCmuZ4IYqzcyVx+R0J7PF7j6bdJ4XxtLIv
ToNbzz7I/OcMwe2dcajkWjhOpbb3X2T/15gnx+Bixt6YkuHMtCII/GHY8l4KscCj
lHvTjzYyfeFm37E9lKCEYw+5OPicJNhHDNXUdlFwGSmqb5hzASyqyiqStzx+aiS0
gl9sdJqz59xjG8e+C9xVI5a3rwwQWsXnWLQvUj+IQFG6JiIAEvASEUwb2hFyICId
C3Z4e0FHf91NBwMC0UOA1LQzr1ggb/xoRt9kjut6tua6EwhiH9fPRawEci6dvHyb
bH2RnZDrZTua02gxq7VcUchYv6gZUz0CC9N1cvkvN/M4uYpD2U8jy9rY7XS0V9DI
RnA7fu1sDXDueroYwMx6Q8oARqcmyzSIZQDBzkqUyOWPimlQTO4FhQ8ziSwqXKsG
OjROM97lNcfc9HNFlXTMoZKh9Ogk/q515DP2wmE5NM3qa+MsO+aAZ+KfRz9WMazP
d+hr6o6oQBkrEDY5nVPrVco++YjkT+xLnLMSqj1DqgcjBxh90fZImchO+p5QNx2L
Gmza4TZ2XUQz8NiaAQkSJzBOT3WJnaeo2Nnj+AROa3ajw8TGzdb7GxwdHy81SWpr
c5+uyc7V2Nv/AAUWJy8wP0pXaGtsfYKRpcrN6PX8/wAAAAAAAAAAAAAAAAAQGy1D
-----END CERTIFICATE-----
+53 -1
View File
@@ -123,7 +123,59 @@
]
},
{
"Repeat": 2000,
"//0": "Well-formed MTCEntryExtensions of unrecognized types 1 and 2, which are ignored: 0001 0000 0002 0001 ff",
"MTCEntryExtensions": "AAEAAAACAAH/",
"PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
"NotBefore": "2020-01-01T00:00:00Z",
"NotAfter": "2030-12-31T23:59:59Z",
"DNSNames": ["a.example"],
"KeyUsage": ["DigitalSignature"],
"ExtKeyUsage": ["ServerAuth"],
"Certificates": [
{"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"]}
]
},
{
"//0": "Invalid because MTCEntryExtensions is truncated: 0001 0005 ff",
"MTCEntryExtensions": "AAEABf8=",
"PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
"NotBefore": "2020-01-01T00:00:00Z",
"NotAfter": "2030-12-31T23:59:59Z",
"DNSNames": ["a.example"],
"KeyUsage": ["DigitalSignature"],
"ExtKeyUsage": ["ServerAuth"],
"Certificates": [
{"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"]}
]
},
{
"//0": "Invalid because MTCEntryExtensions has a duplicate type: 0001 0000 0001 0000",
"MTCEntryExtensions": "AAEAAAABAAA=",
"PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
"NotBefore": "2020-01-01T00:00:00Z",
"NotAfter": "2030-12-31T23:59:59Z",
"DNSNames": ["a.example"],
"KeyUsage": ["DigitalSignature"],
"ExtKeyUsage": ["ServerAuth"],
"Certificates": [
{"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"]}
]
},
{
"//0": "Invalid because MTCEntryExtensions types are in descending order: 0002 0000 0001 0000",
"MTCEntryExtensions": "AAIAAAABAAA=",
"PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
"NotBefore": "2020-01-01T00:00:00Z",
"NotAfter": "2030-12-31T23:59:59Z",
"DNSNames": ["a.example"],
"KeyUsage": ["DigitalSignature"],
"ExtKeyUsage": ["ServerAuth"],
"Certificates": [
{"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"]}
]
},
{
"Repeat": 1996,
"Subject": {"CommonName": "Some more filler certificates"},
"PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
"NotBefore": "2020-01-01T00:00:00Z",
+26
View File
@@ -144,6 +144,29 @@ bool DigestUpdateNextASN1Element(EVP_MD_CTX *ctx, CBS *cbs) {
return EVP_DigestUpdate(ctx, CBS_data(&element), CBS_len(&element));
}
// CheckMTCLogEntryExtensions returns whether `extensions` is a well-formed list
// of MTCLogEntryExtension structures, sorted in strictly ascending order by
// extension type (see section 5.2.1). No extension types are currently
// recognized, so the contents are otherwise ignored (see section 12.5).
bool CheckMTCLogEntryExtensions(CBS extensions) {
std::optional<uint16_t> prev_type;
while (CBS_len(&extensions) > 0) {
uint16_t type;
CBS data;
if (!CBS_get_u16(&extensions, &type) ||
!CBS_get_u16_length_prefixed(&extensions, &data)) {
OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
return false;
}
if (prev_type.has_value() && *prev_type >= type) {
OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
return false;
}
prev_type = type;
}
return true;
}
// MTCCACosigner represents a Merkle Tree CA and its corresponding CA cosigner
// (see draft-ietf-plants-merkle-tree-certs, section 5.5).
// Only id-pe-mtcCertificationAuthority-SHA256 is supported.
@@ -433,6 +456,9 @@ int x509_verify_mtc(const X509 *x509, const EVP_PKEY *pkey,
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
return 0;
}
if (!CheckMTCLogEntryExtensions(extensions)) {
return 0;
}
// Iterate through the subtree signatures array to check that they conform to
// spec, and identify the subtree signature from the CA cosigner.
+35
View File
@@ -12681,6 +12681,41 @@ TEST_P(X509VerifyMTCTest, EmptyUnrecognizedCosignature) {
EXPECT_EQ(X509_V_OK, VerifyMTC(mtc_33_empty_unrecognized_cosignature.get()));
}
TEST_P(X509VerifyMTCTest, UnrecognizedEntryExtensions) {
UniquePtr<X509> mtc_34_unrecognized_extensions =
CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_34_0.pem"));
ASSERT_TRUE(mtc_34_unrecognized_extensions);
EXPECT_EQ(X509_V_OK, VerifyMTC(mtc_34_unrecognized_extensions.get()));
}
TEST_P(X509VerifyMTCTest, InvalidEntryExtensions) {
UniquePtr<X509> mtc_35_truncated_extensions =
CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_35_0.pem"));
ASSERT_TRUE(mtc_35_truncated_extensions);
EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
VerifyMTC(mtc_35_truncated_extensions.get()));
EXPECT_TRUE(
ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
ERR_clear_error();
UniquePtr<X509> mtc_36_duplicate_extensions =
CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_36_0.pem"));
ASSERT_TRUE(mtc_36_duplicate_extensions);
EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
VerifyMTC(mtc_36_duplicate_extensions.get()));
EXPECT_TRUE(
ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
ERR_clear_error();
UniquePtr<X509> mtc_37_misordered_extensions =
CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_37_0.pem"));
ASSERT_TRUE(mtc_37_misordered_extensions);
EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
VerifyMTC(mtc_37_misordered_extensions.get()));
EXPECT_TRUE(
ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
}
TEST_P(X509VerifyMTCTest, InvalidSerial) {
// This cert with index 2 is below the minSerial for the CA, which is:
// {"Log": 1, "Index": 8}.
+4
View File
@@ -1034,6 +1034,10 @@ crypto_test_data = [
"crypto/x509/test/mtc/cert_33_7.pem",
"crypto/x509/test/mtc/cert_33_8.pem",
"crypto/x509/test/mtc/cert_33_9.pem",
"crypto/x509/test/mtc/cert_34_0.pem",
"crypto/x509/test/mtc/cert_35_0.pem",
"crypto/x509/test/mtc/cert_36_0.pem",
"crypto/x509/test/mtc/cert_37_0.pem",
"crypto/x509/test/mtc/cert_5036_0.pem",
"crypto/x509/test/mtc/large_merkle_tree_consistency_proof_tests.txt",
"crypto/x509/test/mtc/large_merkle_tree_inclusion_proof_tests.txt",
+4
View File
@@ -1066,6 +1066,10 @@ set(
crypto/x509/test/mtc/cert_33_7.pem
crypto/x509/test/mtc/cert_33_8.pem
crypto/x509/test/mtc/cert_33_9.pem
crypto/x509/test/mtc/cert_34_0.pem
crypto/x509/test/mtc/cert_35_0.pem
crypto/x509/test/mtc/cert_36_0.pem
crypto/x509/test/mtc/cert_37_0.pem
crypto/x509/test/mtc/cert_5036_0.pem
crypto/x509/test/mtc/large_merkle_tree_consistency_proof_tests.txt
crypto/x509/test/mtc/large_merkle_tree_inclusion_proof_tests.txt
+4
View File
@@ -1034,6 +1034,10 @@ crypto_test_data = [
"crypto/x509/test/mtc/cert_33_7.pem",
"crypto/x509/test/mtc/cert_33_8.pem",
"crypto/x509/test/mtc/cert_33_9.pem",
"crypto/x509/test/mtc/cert_34_0.pem",
"crypto/x509/test/mtc/cert_35_0.pem",
"crypto/x509/test/mtc/cert_36_0.pem",
"crypto/x509/test/mtc/cert_37_0.pem",
"crypto/x509/test/mtc/cert_5036_0.pem",
"crypto/x509/test/mtc/large_merkle_tree_consistency_proof_tests.txt",
"crypto/x509/test/mtc/large_merkle_tree_inclusion_proof_tests.txt",
+4
View File
@@ -1013,6 +1013,10 @@
"crypto/x509/test/mtc/cert_33_7.pem",
"crypto/x509/test/mtc/cert_33_8.pem",
"crypto/x509/test/mtc/cert_33_9.pem",
"crypto/x509/test/mtc/cert_34_0.pem",
"crypto/x509/test/mtc/cert_35_0.pem",
"crypto/x509/test/mtc/cert_36_0.pem",
"crypto/x509/test/mtc/cert_37_0.pem",
"crypto/x509/test/mtc/cert_5036_0.pem",
"crypto/x509/test/mtc/large_merkle_tree_consistency_proof_tests.txt",
"crypto/x509/test/mtc/large_merkle_tree_inclusion_proof_tests.txt",
+4
View File
@@ -1019,6 +1019,10 @@ boringssl_crypto_test_data := \
crypto/x509/test/mtc/cert_33_7.pem \
crypto/x509/test/mtc/cert_33_8.pem \
crypto/x509/test/mtc/cert_33_9.pem \
crypto/x509/test/mtc/cert_34_0.pem \
crypto/x509/test/mtc/cert_35_0.pem \
crypto/x509/test/mtc/cert_36_0.pem \
crypto/x509/test/mtc/cert_37_0.pem \
crypto/x509/test/mtc/cert_5036_0.pem \
crypto/x509/test/mtc/large_merkle_tree_consistency_proof_tests.txt \
crypto/x509/test/mtc/large_merkle_tree_inclusion_proof_tests.txt \