Hi,

Please find the latest report on new defect(s) introduced to ARM-software/arm-trusted-firmware found with Coverity Scan.

Defect Details

** CID 506049:       Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 568           in parse_pcrs_find()


_____________________________________________________________________________________________
*** CID 506049:         Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 568             in parse_pcrs_find()
562     	if (ret != TPM_SUCCESS) {
563     		return ret;
564     	}
565     
566     	iter_read_u32_be(&iter, &count);
567     
>>>     CID 506049:         Insecure data handling  (TAINTED_SCALAR)
>>>     Using tainted variable "count" as a loop boundary.
568     	for (uint32_t i = 0U; i < count; i++) {
569     		iter_read_u16_be(&iter, &hash_id);
570     		iter_read_u8(&iter, &sizeof_select);
571     		if (iter.error_state != TPM_SUCCESS) {
572     			return iter.error_state;
573     		}

** CID 506048:       Memory - corruptions  (OVERRUN)


_____________________________________________________________________________________________
*** CID 506048:         Memory - corruptions  (OVERRUN)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 1071             in tpm_has_alg()
1065     	}
1066     
1067     	item[0].alg_id = alg_id;
1068     	item[0].enabled = false;
1069     	item[1].alg_id = TPM_ALG_NULL;
1070     	item[1].enabled = false;
>>>     CID 506048:         Memory - corruptions  (OVERRUN)
>>>     Overrunning array "item" of 2 4-byte elements by passing it to a function which accesses it at element index 63 (byte offset 255).
1071     	ret = tpm_getcap_query_algs(chip, item);
1072     	if (ret != TPM_SUCCESS) {
1073     		return ret;
1074     	}
1075     
1076     	*out_supported = item[0].enabled;

** CID 506047:       Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 444           in parse_algs_find()


_____________________________________________________________________________________________
*** CID 506047:         Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 444             in parse_algs_find()
438     	if (ret != TPM_SUCCESS) {
439     		return ret;
440     	}
441     
442     	iter_read_u32_be(&iter, &count);
443     
>>>     CID 506047:         Insecure data handling  (TAINTED_SCALAR)
>>>     Using tainted variable "count" as a loop boundary.
444     	for (uint32_t i = 0U; i < count; i++) {
445     		iter_read_u16_be(&iter, &alg);
446     		iter_read_u32_be(&iter, &props);
447     		if (iter.error_state != TPM_SUCCESS) {
448     			return iter.error_state;
449     		}

** CID 506046:       Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 386           in parse_algs()


_____________________________________________________________________________________________
*** CID 506046:         Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 386             in parse_algs()
380     	if (ret != TPM_SUCCESS) {
381     		return ret;
382     	}
383     
384     	iter_read_u32_be(&iter, &count);
385     
>>>     CID 506046:         Insecure data handling  (TAINTED_SCALAR)
>>>     Using tainted variable "count" as a loop boundary.
386     	for (uint32_t i = 0U; i < count; i++) {
387     		iter_read_u16_be(&iter, &alg);
388     		iter_read_u32_be(&iter, &properties);
389     		if (iter.error_state != TPM_SUCCESS) {
390     			return iter.error_state;
391     		}

** CID 506045:       Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 498           in parse_pcrs()


_____________________________________________________________________________________________
*** CID 506045:         Insecure data handling  (TAINTED_SCALAR)
/home/buildslave/agent/workspace/tf-a-coverity/trusted-firmware-a/contrib/libtpm/src/tpm2_cmds.c: 498             in parse_pcrs()
492     	if (ret != TPM_SUCCESS) {
493     		return ret;
494     	}
495     
496     	iter_read_u32_be(&iter, &count);
497     
>>>     CID 506045:         Insecure data handling  (TAINTED_SCALAR)
>>>     Using tainted variable "count" as a loop boundary.
498     	for (uint32_t i = 0U; i < count; i++) {
499     		iter_read_u16_be(&iter, &hash);
500     		iter_read_u8(&iter, &sizeof_select);
501     		if (iter.error_state != TPM_SUCCESS) {
502     			return iter.error_state;
503     		}

  

View Defects in Coverity Scan

Best regards,

The Coverity Scan Admin Team