v2023110000.0.4
What's Changed
-
[CHERRY-PICK] Add StackCheckLib Instances to Platform DSC Files (#252) @TaylorBeebe (#253)
Change Details
## Description
An instance of StackCheckLib must be in each DSC to accommodate -fstack-protector and /GS flags.
- Impacts functionality?
- Functionality - Does the change ultimately impact how firmware functions?
- Examples: Add a new library, publish a new PPI, update an algorithm, ...
- Impacts security?
- Security - Does the change have a direct security impact on an application,
flow, or firmware?- Examples: Crypto algorithm change, buffer overflow fix, parameter validation improvement, ...
- Breaking change?
- Breaking change - Will anyone consuming this change experience a break
in build or boot behavior? - Examples: Add a new library class, move a module to a different repo, call
a function in a new library class in a pre-existing module, ... - Includes tests?
- Tests - Does the change include any explicit test code?
- Examples: Unit tests, integration tests, robot tests, ...
- Includes documentation?
- Documentation - Does the change contain explicit documentation additions
outside direct code modifications (and comments)? - Examples: Update readme file, add feature readme file, link to documentation
on an a separate Web page, ...
How This Was Tested
Tested in pipelines
Integration Instructions
N/A
-
Delete PK broken on latest integration due to not using CUSTOM MODE or UserPhysicallyPresent(..) @Flickdm (#254)
Change Details
# Preface
Description
This reverts the revert where we reverted the update that supports SHA384 and SHA512.
When ProcessVarWithPk(..) is called the expected code path is that you are in CUSTOM MODE and a UserPhysicallyPresent. Neither of which Project MU does or supports. So we end up falling down into VerifyTimeBasedPayloadAndUpdate(..). From there we fall into VerifyTimeBasedPayload and then finally we were depending on a special case where the size wasn't checked to hit the following line
// If the VariablePolicy engine is disabled, allow deletion of any authenticated variables. if ((PayloadSize == 0) && ((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && !IsVariablePolicyEnabled ()) { VerifyStatus = TRUE; goto Exit; }
This would work in 202302 and before allow us to delete the PK. However in this commit the logic to detect digest algorithm was changed and now prevents any payload with an invalid signature size (such as a PK Delete payload) from working.
History:
Bug seen where PK cannot be deleted
See Issue #246- Revert "SecurityPkg/SecureBoot: Support RSA4096 and RSA3072" and follow up change
- Revert "SecurityPkg/SecureBoot: Support RSA4096 and RSA3072"
This patch series contains the original two commits and the bug fix
- Cherry-pick into MU_TIANO_PLUS
- Partial Revert to remove unnecessary logic
- SecurityPkg/SecureBoot: Support special case where PK is being deleted.
Effectively this adds a special case where if the signature is 0
For each item, place an "x" in between
[
and]
if true. Example:[x]
.
(you can also check items in the GitHub UI)- Impacts functionality?
- Functionality - Allows for a PK to be deleted
- Impacts security?
- Security - No
- Breaking change?
- Breaking change - No
- Includes tests?
- Tests - No
- Includes documentation?
- Documentation - No
How This Was Tested
- Boot QemuQ35
- Enable Secure Boot with the Microsoft Only Certificates
- Boot to the Front Page
- Go to the Security Tab - Reboot to Front Page
- Disable Secure Boot by selecting None
- If broken firmware will assert
- otherwise proceed
Additionally, confirmed that authenticated variables with valid signature data using the hash algorithms SHA256, SHA384 and SHA512 still work.
Integration Instructions
N/A
-
Corrects spelling error in unit test @Flickdm (#250)
Change Details
# Preface
Description
Pipeline just started picking up a spelling mistake in a log message in a unit test
- Impacts functionality?
- Functionality - No
- Impacts security?
- Security - No
- Breaking change?
- Breaking change - No
- Includes tests?
- Tests - No
- Includes documentation?
- Documentation - No
How This Was Tested
N/A
Integration Instructions
N/A
- Impacts functionality?
-
Revert "SecurityPkg/SecureBoot: Support RSA4096 and RSA3072" and follow up change. @cfernald (#246)
Change Details
## Description
Reverts commit 36b848b.
Reverts commit bbf1822.This change has created an issue where the PK cannot be deleted after creation because of a hashing signature mismatch. This change is to revert the offending change until this issue can be further debugged.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested oh physical platform
Integration Instructions
N/A
Full Changelog: v2023110000.0.3...v2023110000.0.4