mirror of https://github.com/acidanthera/audk.git
SecuritPkg: DxeImageVerificationLib: Fix wrong verification logic in DBX & DBT
In image verification, if image verified pass in DBT, still need to verify if it is blocked by any other cert/cert hash from DBX. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Chao Zhang <chao.b.zhang@intel.com> Reviewed-by: Long Qin <qin.long@intel.com> Reviewed-by: Dick Wilkins <dick_wilkins@phoenix.com>
This commit is contained in:
parent
07e8892090
commit
91422384d5
|
@ -12,7 +12,7 @@
|
|||
DxeImageVerificationHandler(), HashPeImageByType(), HashPeImage() function will accept
|
||||
untrusted PE/COFF image and validate its data structure within this image buffer before use.
|
||||
|
||||
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -1457,6 +1457,10 @@ IsForbiddenByDbx (
|
|||
for (Index = 0; Index < CertNumber; Index++) {
|
||||
CertSize = (UINTN) ReadUnaligned32 ((UINT32 *)CertPtr);
|
||||
Cert = (UINT8 *)CertPtr + sizeof (UINT32);
|
||||
//
|
||||
// Advance CertPtr to the next cert in image signer's cert list
|
||||
//
|
||||
CertPtr = CertPtr + sizeof (UINT32) + CertSize;
|
||||
|
||||
if (IsCertHashFoundInDatabase (Cert, CertSize, (EFI_SIGNATURE_LIST *)Data, DataSize, &RevocationTime)) {
|
||||
//
|
||||
|
@ -1465,11 +1469,14 @@ IsForbiddenByDbx (
|
|||
IsForbidden = TRUE;
|
||||
if (PassTimestampCheck (AuthData, AuthDataSize, &RevocationTime)) {
|
||||
IsForbidden = FALSE;
|
||||
//
|
||||
// Pass DBT check. Continue to check other certs in image signer's cert list against DBX, DBT
|
||||
//
|
||||
continue;
|
||||
}
|
||||
goto Done;
|
||||
}
|
||||
|
||||
CertPtr = CertPtr + sizeof (UINT32) + CertSize;
|
||||
}
|
||||
|
||||
Done:
|
||||
|
|
Loading…
Reference in New Issue