Re: [PATCH v6 6/7] tpm: ensure that the output of PCR read contains the correct digest size

From: Jarkko Sakkinen
Date: Tue Dec 04 2018 - 19:09:13 EST


On Tue, Dec 04, 2018 at 09:21:37AM +0100, Roberto Sassu wrote:
> out = (struct tpm2_pcr_read_out *)&buf.data[TPM_HEADER_SIZE];
> digest_size = be16_to_cpu(out->digest_size);
> - if (digest_size > sizeof(digest->digest)) {
> + if (digest_size > sizeof(digest->digest) ||
> + (!digest_size_ptr && digest_size != expected_digest_size)) {
> rc = -EINVAL;
> goto out;
> }

Just noticed this but you must squash 4-6 because applying only
previous commits will result a broken tree. It will be much bigger
commit but won't be broken.

I think you should also feed min_rsp_body_length as you should be
able to precalculate.

Last time I was asking why this isn't a bug fix. It is even for
the existing code. The existing code should have a bug fix that
checks that the received digest size so that it is the expected
SHA1 size before we can apply this commit.

/Jarkko