NetworkPkg: Dhcp6Dxe: SECURITY PATCH CVE-2023-45229 Related Patch
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4673 REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4534 This was not part of the Quarkslab bugs however the same pattern as CVE-2023-45229 exists in Dhcp6UpdateIaInfo. This patch replaces the code in question with the safe function created to patch CVE-2023-45229 > > if (EFI_ERROR ( > Dhcp6SeekInnerOptionSafe ( > Instance->Config->IaDescriptor.Type, > Option, > OptionLen, > &IaInnerOpt, > &IaInnerLen > ) > )) > { > return EFI_DEVICE_ERROR; > } > Additionally corrects incorrect usage of macro to read the status > - StsCode = NTOHS (ReadUnaligned16 ((UINT16 *)DHCP6_OFFSET_OF_OPT_LEN (Option))); > + StsCode = NTOHS (ReadUnaligned16 ((UINT16 *) DHCP6_OFFSET_OF_STATUS_CODE (Option)); Cc: Saloni Kasbekar <saloni.kasbekar@intel.com> Cc: Zachary Clark-williams <zachary.clark-williams@intel.com> Signed-off-by: Doug Flick [MSFT] <doug.edk2@gmail.com> Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
This commit is contained in:
@@ -217,4 +217,26 @@ Dhcp6OnTimerTick (
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Seeks the Inner Options from a DHCP6 Option
|
||||
|
||||
@param[in] IaType The type of the IA option.
|
||||
@param[in] Option The pointer to the DHCP6 Option.
|
||||
@param[in] OptionLen The length of the DHCP6 Option.
|
||||
@param[out] IaInnerOpt The pointer to the IA inner option.
|
||||
@param[out] IaInnerLen The length of the IA inner option.
|
||||
|
||||
@retval EFI_SUCCESS Seek the inner option successfully.
|
||||
@retval EFI_DEVICE_ERROR The OptionLen is invalid. On Error,
|
||||
the pointers are not modified
|
||||
**/
|
||||
EFI_STATUS
|
||||
Dhcp6SeekInnerOptionSafe (
|
||||
IN UINT16 IaType,
|
||||
IN UINT8 *Option,
|
||||
IN UINT32 OptionLen,
|
||||
OUT UINT8 **IaInnerOpt,
|
||||
OUT UINT16 *IaInnerLen
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user