From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web11.27843.1678473903252803256 for ; Fri, 10 Mar 2023 10:45:03 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=srmLIGIy; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from localhost.localdomain (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 4530120BBF92; Fri, 10 Mar 2023 10:44:58 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 4530120BBF92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1678473900; bh=EMn7AgQaD+3Swj29DJ4MVmK/CdgyOZAbKFMIT7+stkU=; h=From:To:Cc:Subject:Date:From; b=srmLIGIyAjrhXmVjHg7Btr3MWOMFkQX+RhBVZS6aOtoy5MrQVZ9vm24RHgSBzP4L1 dJRDWREWAM53qqV6v+KUTP0/HnuqbTCePyyds2fl7E0dAvcC4A3VfoN9VCztgfYOsb ILmUKFvy85kAsayL2di/ayQAJvMGGqkPguvS1Pzw= From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Bob Feng , Dandan Bi , Eric Dong , Erich McMillan , Guomin Jiang , Jian J Wang , Jiaxin Wu , Jiewen Yao , Liming Gao , Maciej Rabeda , Michael Brown , Michael D Kinney , Michael Kubacki , Rahul Kumar , Ray Ni , Sean Brogan , Siyuan Fu , Star Zeng , Xiaoyu Lu , Yuwei Chen , Zhichao Gao , Zhiguang Liu Subject: [PATCH v4 00/12] Enable New CodeQL Queries Date: Fri, 10 Mar 2023 13:42:26 -0500 Message-Id: <20230310184238.2999-1-mikuback@linux.microsoft.com> X-Mailer: git-send-email 2.39.2.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Kubacki Adds queries for the following: 1. cpp/conditionallyuninitializedvariable 2. cpp/pointer-overflow-check 3. cpp/overrunning-write 4. cpp/overrunning-write-with-float 5. cpp/very-likely-overrunning-write These check for vulnerabilities with the following CWEs: - https://cwe.mitre.org/data/definitions/120.html - https://cwe.mitre.org/data/definitions/457.html - https://cwe.mitre.org/data/definitions/676.html - https://cwe.mitre.org/data/definitions/758.html - https://cwe.mitre.org/data/definitions/787.html - https://cwe.mitre.org/data/definitions/805.html The first part of this patch series contains fixes for CodeQL alerts across various packages that are produced by the new queries being enabled. The second part updates the CodeQL queries. Note: The changes are currently in the following pull request https://github.com/tianocore/edk2/pull/4133 NetworkPkg and UefiCpuPkg patches still need a R-b. v4 series changes: 1. Simplify conditional logic in Patch 1 per Michael Brown's suggestion. v3 series changes: 1. Rebased series onto 93a21b4 (current edk2/master) 2. Added v2 Rb tags V2 series changes: 1. MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c - Applied SafeUintnAdd() to both variables in the comparison in ParseAndAddExistingSmbiosTable() Addresses feedback from: Mike Kinney 2. CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c - Changes: if (!(Inf & 0x80) && (Asn1Tag !=3D V_ASN1_SEQUENCE)) { To: if (((Inf & 0x80) =3D=3D 0x00) && (Asn1Tag !=3D V_ASN1_SEQUENCE)) { Addresses feedback from: Mike Kinney 3. MdePkg/Library/BaseLib/String.c - Removes: #include - Changes conditional style in changes to if statement from ternary for changes made throughout the file - Updates commit message to describe change in return value Addresses feedback from: Mike Kinney 4. NetworkPkg/Library/DxeHttpLib/DxeHttpLib.c - Changes: if (!EFI_ERROR (Status) && (Data > HTTP_URI_PORT_MAX_NUM)) { Status =3D EFI_INVALID_PARAMETER; goto ON_EXIT; } To: if (EFI_ERROR (Status) || (Data > HTTP_URI_PORT_MAX_NUM)) { Status =3D EFI_INVALID_PARAMETER; goto ON_EXIT; } Addresses feedback from: Mike Kinney 5. ShellPkg/Application/Shell/Shell.c - Initializes CalleeStatus to EFI_SUCCESS in DoStartupScript() - Restores original if statement logic in DoStartupScript() Addresses feedback from: Zhichao Gao 6. ShellPkg/Application/Shell/ShellProtocol.c - Adds additional check for return value from PARSE_HANDLE_DATABASE_UEFI_DRIVERS() in EfiShellGetDeviceName() Addresses feedback from: Zhichao Gao 7. Includes up-to-date R-b tags --- Cc: Bob Feng Cc: Dandan Bi Cc: Eric Dong Cc: Erich McMillan Cc: Guomin Jiang Cc: Jian J Wang Cc: Jiaxin Wu Cc: Jiewen Yao Cc: Liming Gao Cc: Maciej Rabeda Cc: Michael Brown Cc: Michael D Kinney Cc: Michael Kubacki Cc: Rahul Kumar Cc: Ray Ni Cc: Sean Brogan Cc: Siyuan Fu Cc: Star Zeng Cc: Xiaoyu Lu Cc: Yuwei Chen Cc: Zhichao Gao Cc: Zhiguang Liu Signed-off-by: Michael Kubacki Erich McMillan (1): MdeModulePkg/SmbiosDxe: Fix pointer and buffer overflow CodeQL alerts Michael Kubacki (11): BaseTools/PatchCheck.py: Add PCCTS to tab exemption list BaseTools/VfrCompile: Fix potential buffer overwrites CryptoPkg: Fix conditionally uninitialized variable MdeModulePkg: Fix conditionally uninitialized variables MdePkg: Fix conditionally uninitialized variables NetworkPkg: Fix conditionally uninitialized variables PcAtChipsetPkg: Fix conditionally uninitialized variables ShellPkg: Fix conditionally uninitialized variables UefiCpuPkg: Fix conditionally uninitialized variables .github/codeql/edk2.qls: Enable CWE 457, 676, and 758 queries .github/codeql/edk2.qls: Enable CWE 120, 787, and 805 queries BaseTools/Source/C/VfrCompile/Pccts/antlr/gen.c | 10 ++-- BaseTools/Source/C/VfrCompile/Pccts/antlr/main.c | 4 +- CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c | 21 ++++-= -- MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 5 +- MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c | 24 +++++= --- MdeModulePkg/Core/Dxe/Mem/Page.c | 17 +++--= - MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c | 25 ++++-= --- MdeModulePkg/Library/FileExplorerLib/FileExplorer.c | 5 +- MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 33 +++++= +----- MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c | 11 ++-- MdeModulePkg/Universal/HiiDatabaseDxe/Font.c | 14 +++-- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c | 8 +-- MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c | 2 +- MdePkg/Library/BaseLib/String.c | 40 +++++= +++++--- NetworkPkg/Library/DxeHttpLib/DxeHttpLib.c | 2 +- NetworkPkg/TcpDxe/TcpInput.c | 3 + PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c | 9 ++- ShellPkg/Application/Shell/Shell.c | 1 + ShellPkg/Application/Shell/ShellProtocol.c | 60 +++++= +++++---------- ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c | 56 +++++= ++++--------- ShellPkg/Library/UefiShellDebug1CommandsLib/Dblk.c | 18 +++--= - ShellPkg/Library/UefiShellDebug1CommandsLib/EfiDecompress.c | 9 ++- ShellPkg/Library/UefiShellDriver1CommandsLib/Connect.c | 14 +++-- ShellPkg/Library/UefiShellDriver1CommandsLib/Disconnect.c | 17 ++++-= - ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c | 21 +++--= -- UefiCpuPkg/CpuMpPei/CpuBist.c | 8 ++- UefiCpuPkg/CpuMpPei/CpuMpPei.c | 8 ++- UefiCpuPkg/CpuMpPei/CpuPaging.c | 9 ++- .github/codeql/edk2.qls | 10 ++++ BaseTools/Scripts/PatchCheck.py | 4 +- 30 files changed, 285 insertions(+), 183 deletions(-) --=20 2.39.2.windows.1