据我了解,错误和漏洞修复分别在 -updates 和 -security 中发布。1 个补丁修复了 1 个软件包的 CVE(没有像 Windows 中那样的累积补丁)。每个软件包的每个版本的 ubuntu 都有一个补丁(出于稳定性原因修复当前版本)。
这是我的问题:
-security 和 -updates 镜像何时合并。在下一个 Ubuntu 版本中?
如果在软件包的版本 N 中找到并修复了 CVE。该软件包的版本 N+1 是否包含修复程序?
如果针对 Ubuntu 18/04 发布了安全协议,并且 USN 页面中没有提及 ubuntu 20.04,那么 Ubuntu 20.04 中包含的修复程序还是旧的 CVE 不适用?
在此示例中: https: //ubuntu.com/security/notices/USN-3876-1
USN 中提到的最新版本补丁适用于 Ubuntu 18.04,名为 avahi-daemon-0.7-4ubuntu2.1。
我在 Ubuntu 20.04 中安装的版本较新:0.7-4ubuntu7.2。即使ubuntu版本不同,它是否包含CVE-2017-6519的安全补丁?
当发布 USN 时,这意味着所有受影响版本的更新都已发布到受影响版本的 -security 和 -updates pocket 中的存储库中,并且很可能是此后的每个版本,特别是如果它由上游开发人员修复给定的源包。
在这里,您必须查看给定 CVE 的 CVE 页面本身,才能真正开始剖析它,并且还需要了解一下 Ubuntu 软件包版本是如何确定的。 这是您引用的 CVE (CVE-2017-6519) 的 CVE 跟踪器页面。
当安全更新被推送时,它会同时出现在 -security 和 -updates 口袋中。这样做是为了确保所有人都获得安全补丁。
但是,您必须对已安装的软件包版本与受影响/修复的版本进行版本比较。
这是当前页面的屏幕截图:
我们可以看到 Ubuntu 中第一个收到此修复的版本是
0.7-3.1ubuntu1.2
Bionic 中引入的。然后我们会参考您系统中的版本 -
0.7-4ubuntu7.2
. 这与Avahi 0.7 的代码库相同,但有额外的软件包修订和补丁。0.7-3.1ubuntu1.2
由于这些是相同的代码库版本,但具有晚于“修复发布”版本的不同软件包修订版,因此您已经针对此 CVE 进行了修补。 这就是为什么后来的版本不会出现在表中,并且您无需担心。Avahi 的更高版本也可能针对此 CVE 进行修复和修补。
Avahi 实际上已经在 Upstream 的 0.8 版本中修复了这个问题。我们从他们的 github 标签和发行说明中知道这一点 - https://github.com/lathiat/avahi/releases/tag/v0.8
因此,CVE 需要更新以反映上游补丁版本,以将其标记为已发布/已修复。但是,您的代码库是 0.7,因此您的 Focal 版本中的包版本是在该包的基础上构建的,并进行了额外的包装更改以作为
-4ubuntu*
其包版本字符串。我们可以通过查看 Launchpad 中的页面来查看所有可用的 Avahi 版本,了解支持的版本以及每个版本的版本:
安全团队一旦发布修复程序,就没有义务返回并更新上游补丁版本的跟踪器,尽管他们有时确实这样做,但它并不总是得到更新(在这种情况下,我要求安全团队更新该 CVE 页面)。
由于此安全补丁已在 Avahi 0.8 版本中修复,因此您会注意到 Ubuntu 的所有更高版本都使用 0.8 版本,因此已经包含此补丁(并且未在这些更高版本的 -security 存储库中进行发行版修补,但包含为Avahi 基本代码的一部分)。