Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
shim-review — shim 的评论 | Kitploit
工具/GitHubGitHub/rhboot/shim-review
漏洞分析代码分析供应链安全学习与教育精选资源固件分析
GitHubrhboot/shim-review

shim-review

shim 的评论

查看仓库
89171410天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

此仓库用于审查签名 shim 的请求。要创建审查请求:

  • 克隆此仓库(最好 fork)
  • 编辑下面的模板
  • 添加要签名的 shim.efi
  • 添加构建日志
  • 添加可能需要的任何附加二进制文件/证书/SHA256 哈希
  • 提交所有这些内容
  • 使用格式为 "myorg-shim-arch-YYYYMMDD" 的标签进行标记
  • 推送到 GitHub
  • 在 https://github.com/rhboot/shim-review/issues 提交一个 issue,并附上你的标签链接
  • 当你的 issue 被添加 "accepted" 标签时,即表示已获批准

请注意,我们实际上只对在 Linux 上使用 GRUB2 或 systemd-boot 有经验,因此要求我们认可其他任何用于签名的引导加载程序,都需要你提供充分的说服力。

自 2025 年 10 月 20 日起,发送给 Microsoft 的 shim 将使用 2011 和 2023 密钥进行签名。你提交的每个 shim,都将收到两份签名副本,每份由不同的密钥签名。以下是来自 Microsoft 的最新信息:https://techcommunity.microsoft.com/blog/hardware-dev-center/signing-with-the-new-2023-microsoft-uefi-certificates-what-submitters-need-to-kn/4455787

新的签名要求也已生效,可在此处查看:https://techcommunity.microsoft.com/blog/hardware-dev-center/updated-microsoft-uefi-signing-requirements/1062916 请注意,只要你的 shim 仅移交给开源引导加载程序,接受此次 shim 审查即可免除你的年度安全审计。

提示:请查看本仓库中的 docs 目录,以获取提交和签署 shim 的指导。

以下是模板:


哪些组织或个人请求签署此 shim?


组织名称和网站:
[在此处填写你的文本]


哪些法律数据能证明组织的真实性?

审查人员应能够轻松验证你的组织是合法实体,以防止滥用。请提供能够确切证明真实性的信息。


公司/税务登记条目或等效证明:
(提供你司法管辖区登记机构中组织条目的链接即可)

[在此处填写你的文本]

你的组织以及用于在 Microsoft 硬件开发中心文件签名服务中签署 .cab 文件的 EV 证书中颁发者的公开详细信息。
(不是嵌入在你的 shim 二进制文件中的 CA 证书)

示例:``` Issuer: O=MyIssuer, Ltd., CN=MyIssuer EV Code Signing CA Subject: C=XX, O=MyCompany, Inc., CN=MyCompany, Inc.

root@kitploit:~
[在此处输入您的文本]

*******************************************************************************
### 这适用于什么产品或服务?
*******************************************************************************
[在此处输入您的文本]

*******************************************************************************
### 有什么理由说明这确实需要签名,以便全世界都能启动它?
*******************************************************************************
[在此处输入您的文本]

*******************************************************************************
### 为什么您无法复用另一个已签名发行版中的 shim?
*******************************************************************************
[在此处输入您的文本]

*******************************************************************************
### 谁是安全更新等方面的主要联系人?
在 shim 被接受之前,需要验证安全联系人。对于后续请求,仅当自上次成功验证以来安全联系人或其 PGP 密钥发生变化时,才需要重新验证联系人。

授权审核员将通过向每位安全联系人发送一封包含随机单词的 PGP 加密电子邮件来发起联系验证。
您将被要求在您的 `shim-review` issue 中发布这些邮件的内容,以证明对电子邮件地址和 PGP 密钥的所有权。
请将 PGP 密钥上传到知名的密钥服务器(如 keyserver.ubuntu.com)和/或将其作为 .asc 文件包含在审核中,并在此处指向它们。

*******************************************************************************
- 姓名:
- 职位:
- 电子邮件地址:
- PGP 密钥指纹:
- 文件/密钥服务器位置:

*******************************************************************************
### 谁是安全更新等方面的次要联系人?
*******************************************************************************
- 姓名:
- 职位:
- 电子邮件地址:
- PGP 密钥指纹:
- 文件/密钥服务器位置:

*******************************************************************************
### 这些二进制文件是由 16.1 shim 发布 tar 包创建的吗?
请以 16.1 shim 发布 tar 包文件为起点创建您的 shim 二进制文件:https://github.com/rhboot/shim/releases/download/16.1/shim-16.1.tar.bz2

这与 https://github.com/rhboot/shim/releases/tag/16.1 匹配,并包含相应的 gnu-efi 源代码。

请通过将下载文件的校验和(SHA256、SHA512)与以下校验和进行比对,确保 tarball 正确:```
46319cd228d8f2c06c744241c0f342412329a7c630436fce7f82cf6936b1d603  shim-16.1.tar.bz2
ca5f80e82f3b80b622028f03ef23105c98ee1b6a25f52a59c823080a3202dd4b9962266489296e99f955eb92e36ce13e0b1d57f688350006bba45f2718f159fb  shim-16.1.tar.bz2

请确保你已经验证过:你的构建过程以该文件为唯一事实来源(不包括外部补丁),并且其校验和匹配。你还可以通过检查 PGP 签名来进一步验证该发布版本:这里有一个分离签名

该发布版本由维护者 Peter Jones 签名——他的主密钥指纹为 B00B48BC731AA8840FED9FB0EED266B70F4FEF10,此处签名中的签名子密钥指纹为 02093E0D19DDE0F7DFFBB53C1FD3F540256A1372。此处附有一份他的公钥副本,供参考: pjones.asc

一旦你确定所使用的 tarball 正确且真实,请在此用一个简单的 yes 确认。

关于验证公钥和签名的简短指南,请参见 docs 目录。


[在此填写你的文本]


包含构建出你的二进制文件所用确切代码的仓库 URL:

提示:如果你将所使用的全部补丁和修改随附到你的申请中,你可以在此指向你应用程序的 URL(https://github.com/YOUR_ORGANIZATION/shim-review)。

你也可以指向托管这些代码的自有 git 服务器。


[在此填写你的URL]


应用了哪些补丁及其原因:

请列出在构建过程中使用的所有外部补丁和构建过程修改,正是这些修改使你的 shim 二进制文件与你在本申请中发布的完全一致。


[在此填写你的文本]


你的 shim 是否设置了 NX 位?如果是,你的整个启动栈是否兼容 NX?你做了哪些测试来确保这种兼容性?

关于为未设置 NX 位的 shim 进行签名的更多详情,请参阅 https://techcommunity.microsoft.com/t5/hardware-dev-center/nx-exception-for-shim-community/ba-p/3976522。


[在此填写你的文本]


你的 GRUB2 中 Secure Boot 的具体实现是什么?(上游 GRUB2 shim_lock 验证器,或下游类 RHEL/Fedora/Debian/Canonical 的实现)

如果你不使用 GRUB2,请跳过此项。


[在此填写你的文本]


你是否已应用以下所有 GRUB2 CVE 的修复?

如果你不使用 GRUB2,请跳过此项;否则请确保这些修复均已存在,并用 yes 确认。

  • 2020 年 7 月 - BootHole
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00034.html
    • CVE-2020-10713
    • CVE-2020-14308
    • CVE-2020-14309
    • CVE-2020-14310
    • CVE-2020-14311
    • CVE-2020-15705
    • CVE-2020-15706
    • CVE-2020-15707
  • 2021 年 3 月
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
    • CVE-2020-14372
    • CVE-2020-25632
    • CVE-2020-25647
    • CVE-2020-27749
    • CVE-2020-27779
    • CVE-2021-3418(如果你随附了 shim_lock 模块)
    • CVE-2021-20225
    • CVE-2021-20233
  • 2022 年 6 月
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2022-06/msg00035.html,SBAT 提升至 2
    • CVE-2021-3695
    • CVE-2021-3696
    • CVE-2021-3697
    • CVE-2022-28733
    • CVE-2022-28734
    • CVE-2022-28735
    • CVE-2022-28736
    • CVE-2022-28737
  • 2022 年 11 月
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2022-11/msg00059.html,SBAT 提升至 3
    • CVE-2022-2601
    • CVE-2022-3775
  • 2023 年 10 月 - NTFS 漏洞
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2023-10/msg00028.html,SBAT 提升至 4
    • CVE-2023-4693
    • CVE-2023-4692
  • 2025 年 2 月
    • 详情:https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00024.html,SBAT 提升至 5
    • CVE-2024-45774
    • CVE-2024-45775
    • CVE-2024-45776
    • CVE-2024-45777
    • CVE-2024-45778
    • CVE-2024-45779
    • CVE-2024-45780
    • CVE-2024-45781
    • CVE-2024-45782
    • CVE-2024-45783
    • CVE-2025-0622
    • CVE-2025-0624

[在此填写你的文本]


如果 shim 加载的是 GRUB2 引导程序,并且这些修复已应用,那么你的 GRUB2 二进制文件中的上游全局 SBAT 代次是否设置为 5?

如果你不使用 GRUB2,请跳过此项;否则,你的 GRUB2 二进制文件中是否有类似于以下的条目:
grub,5,Free Software Foundation,grub,GRUB_UPSTREAM_VERSION,https://www.gnu.org/software/grub/?


[在此填写你的文本]


是否将旧 shim 的哈希值提供给 Microsoft 进行验证,并添加到未来的 DBX 更新中?

你的新信任链是否禁止启动受这些 CVE 影响的旧 GRUB2 构建?

如果你之前没有签署过 shim,请在此说明。否则,一个简单的 yes 即可。


[在此填写你的文本]


如果你的引导信任链包含 Linux 内核:

是否已应用上游提交 1957a85b0032a81e6482ca4aab883643b8dae06e "efi: Restrict efivar_ssdt_load when the kernel is locked down"?

是否已应用上游提交 75b0cea7bf307f362057cc778efe89af4c615354 "ACPI: configfs: Disallow loading ACPI tables when locked down"?

是否已应用上游提交 eadb2f47a3ced5c64b23b90fd2a3463f63726066 "lockdown: also lock down previous kgdb use"?

提示:上游内核通常应已应用所有这些提交,但如果你随附的是自己深度修改的旧版内核,且该内核与上游分开维护,则情况可能并非如此。 如果你随附的是较旧的内核,请仔细核对你的源码;也许你并非拥有所有补丁,但你随附的配置并不会暴露这些问题。


[在此填写你的文本]


当你的系统启用 Secure Boot 运行时,你的签名内核如何强制实施 lockdown?

提示:如果不能,我们很可能不会为你的 shim 签名。


[在此填写你的文本]


你是否使用额外的本地补丁构建签名内核?这些补丁有什么作用?


[在此填写你的文本]


你是否使用临时密钥来签名内核模块?

如果没有,请描述你如何确保某次内核构建不会加载为另一次内核构建的模块。


[在此填写你的文本]


如果你使用 vendor_db 功能提供多个证书和/或哈希值,请简要描述你的证书设置。

如果有列入白名单的哈希值,请通过文件共享服务提供生成这些哈希值所对应的确切二进制文件,并以匿名可访问的方式公开,以供验证。


[在此填写你的文本]


如果你要复用上一个 shim 二进制文件中的 CA 证书,则需要将前面提到的受 CVE 影响的旧 GRUB2 二进制文件的哈希值添加到 shim 的 vendor_dbx 中。请描述你的策略。

这将确保你的新 shim+GRUB2 无法再链式加载那些存在问题的旧 GRUB2 二进制文件。

如果这是你的首次申请,或者你使用的是新的 CA 证书,请在此说明。


[在此填写你的文本]


你仓库中的 Dockerfile 是否就是复现 shim 二进制文件构建过程的配方?

审查者应当始终能够通过运行 docker build . 获得你在申请中附带的完全相同的二进制文件。

提示:建议为你的工具链使用*冻结(frozen)*软件包,因为 GCC、binutils、gnu-efi 的更新可能会导致构建出校验和不同的 shim 二进制文件。

如果你的 shim 二进制文件无法使用所提供的 Dockerfile 复现,请解释原因、会存在哪些差异,以及用于复现此构建的构建环境(操作系统和工具链)是什么?在这种情况下,请编写一份详细指南,说明如何从头搭建此构建环境。


[在此填写你的文本]


此仓库中哪些文件是你的构建日志?

这应包括创建 buildroot、应用补丁、执行构建、创建归档文件等的日志。


[在此填写你的文本]


自你的 SHIM 上次签名以来,该发行版的安全启动链发生了哪些变化?

例如,签署新的内核变体、UKI、systemd-boot、新证书、新 CA 等。

如果这是你首次申请签署 shim,请跳过此项。


[在此填写你的文本]


你的最终 shim 二进制文件的 SHA256 哈希值是多少?


[在此填写你的文本]


你如何管理和保护 shim 中使用的密钥?

请描述用于密钥保护的安全策略。这可以包括使用硬件令牌(如 HSM 或智能卡)、气隙隔离的保险库、物理保险箱,以及其他良好实践。


[在此填写你的文本]


你是否在 shim 中使用 EV 证书作为嵌入式证书?

一个 yes 或 no 即可。选择后者不会有任何不利影响。


[在此填写你的文本]


你是否在 shim 中嵌入 CA 证书?

一个 yes 或 no 即可。选择后者不会有任何不利影响。但是,如果为 yes:该证书是否包含表明其为 CA 的 X509v3 基本约束(Basic Constraints)?有关此问题的更多指导,请参阅 docs。


[在此填写你的文本]


你是否在每个支持 SBAT 元数据的二进制文件(GRUB2、fwupd、fwupdate、systemd-boot、systemd-stub、shim 以及所有子 shim 二进制文件)的 SBAT 部分中添加特定于供应商的 SBAT 条目?

请提供你通过 shim 直接启动的所有二进制文件的确切 SBAT 条目。

提示:SBAT 的历史及其工作原理的更多信息可以在此处找到。该文档篇幅较大,因此如果只想看一些示例,请查看 SBAT.example.md。

如果你使用的是 GRUB2 的下游实现(例如来自 Fedora 或 Debian),请确保保留他们的 SBAT 条目,并追加你自己的条目(不要替换他们的),以简化撤销操作。

请记得发布所有二进制文件的条目。除了你的引导程序之外,你可能还会随附例如固件更新程序,它同样会有这些条目。

提示:运行 objcopy --dump-section .sbat=/dev/stdout YOUR_EFI_BINARY 可获取这些条目。请将它们粘贴到此处。最好用三个反引号(```)将每个条目括起来,以便良好呈现。


[在此填写你的文本]


如果 shim 加载的是 GRUB2 引导程序,你的签名 GRUB2 镜像中内置了哪些模块?

如果你不使用 GRUB2,请跳过此项。

提示:这里指的是二进制文件本身中的模块,而不是文件系统中的 .mod 文件。


[在此填写你的文本]


如果你在 arm64 或 riscv 上使用 systemd-boot,是否已包含针对未经验证的 Devicetree Blob 加载的修复?


[在此填写你的文本]


你的引导程序(GRUB2、systemd-boot 或其他)的来源和完整版本号是什么?


[在此填写你的文本]


如果你的 shim 除了引导程序之外还启动任何其他组件,请提供有关所启动内容的更多详细信息。

提示:这里最常见的情况是像 fwupd 这样的固件更新程序。


[在此填写你的文本]


如果你的 GRUB2 或 systemd-boot 在 SecureBoot 模式下启动了 Linux 内核以外的任何其他二进制文件,请提供有关所启动内容及其如何强制实施 Secureboot lockdown 的更多详细信息。

如果你不使用 GRUB2 或 systemd-boot,请跳过此项。


[在此填写你的文本]


所启动的组件如何防止执行未经认证的代码?

请用一两句话概括你的安全启动链在更高层面上是如何工作的。


[在此填写你的文本]


你的 shim 是否加载任何支持加载未签名内核的加载器(例如某些 GRUB2 配置)?


[在此填写你的文本]


你使用的是什么内核?它包含哪些补丁和配置来强制实施 Secure Boot?


[在此填写你的文本]


你为帮助我们审查其他申请者的申请做出了哪些贡献?

审查过程本应是一项同行评审工作,让你的申请更快获得审查的最佳方式就是帮助审查他人的申请。在大多数情况下,我们是利用空闲时间在此志愿工作,而不是受雇于人在工作时间内领取报酬来审查这些申请。

等待审查的合理时间可能长达 2-3 个月。帮助我们就是缩短这一时间的最佳方式。我们得到的帮助越多,事情就会进展得越快、越顺利。

对于新手,建议从标记为 easy to review 的申请开始参与贡献流程。


[在此填写你的文本]


添加你认为我们验证此 shim 签名申请可能需要的任何其他信息。


[在此填写你的文本]

下载工具
  • CVE-2025-0677
  • CVE-2025-0678
  • CVE-2025-0684
  • CVE-2025-0685
  • CVE-2025-0686
  • CVE-2025-0689
  • CVE-2025-0690
  • CVE-2025-1118
  • CVE-2025-1125