跳到正文
Hacker News· fuzzfactor·· 8 天前AI 评分22

VLC 3.0.24 发布:史上最大安全更新,修复超 130 个漏洞

VLC 3.0.24 Is Out

AI 导读

VLC 3.0.24 发布,修复超过 130 个安全问题,成为该项目史上规模最大的安全更新,并同步更新 49 个第三方库,其中 FFmpeg 从 4.4 跃升至 8.1.2。

正文 · AI 翻译

VLC 3.0.24:我们有史以来规模最大的安全版本

VLC 3.0.24 已发布,这是 VLC 媒体播放器 Vetinari 分支的第二十五个版本,目前正陆续推送到数亿台设备上。

3.0 分支于 2018 年 2 月发布。八年半之后,它仍然是几乎所有人都在使用的 VLC,而且在我们完成 VLC 4.0 之前,它不能就此荒废。今年 1 月,我在 3.0.23 的文章结尾写道“2026 年再见,届时发布 3.0.24”。承诺兑现了,而且这次远不止是例行维护。

超过 130 项安全修复

早在 2019 年,得益于 EU-FOSSA 漏洞赏金计划,VLC 3.0.7 成为了该项目历史上规模最大的安全版本。那项纪录保持了七年。如今它被打破了:3.0.24 修复了 VLC 及其附带库中的超过 130 个安全问题。

这些漏洞本身正是你对一个以解析恶意输入为生的大型 C 代码库所能预料的:越界读写、整数溢出、双重释放、释放后使用、畸形文件导致的无限循环,以及一长串奇怪的解析器边界情况。其中大多数在实践中很难被利用,但并非全都无害。无论如何,你都应该更新。

为什么一次修复这么多?部分原因是我们投入了大量有资金支持的时间用于安全和维护。但还有一个不容忽视的原因:LLM 改变了发现漏洞的经济学。把工具指向数百万行充满二十年历史解析器的 C 代码已经变得很便宜,我们现在收到的 LLM 辅助安全报告比过去多得多。这些产出很嘈杂:重复报告、无法利用的崩溃、需要数小时分类才有意义的报告。但其中一些漏洞是真实存在的。

而且成本是不对称的:发现可疑代码变便宜了;复现问题、判断其是否可被利用、正确修复、审查修复、将其向后移植到已有八年历史的分支并且不引入回归,这些却完全没有变便宜。我怀疑这将是每个大型开源项目的新常态。

从 FFmpeg 4.4 到 8.1.2

即便说 130 项也低估了这个版本,因为它还更新了 49 个第三方库,每个库都自带多年的上游安全修复。其中最重要的是 FFmpeg,从 4.4 跃升至 8.1.2:一次性跨越四个大版本,而且是在一个不能出问题的稳定分支之下。dav1d、libass、libarchive、GnuTLS、libxml2、libbluray、OpenJPEG、Opus、x265、zlib、libnfs、libsmb2 以及许多其他库也都有更新。旧软件不会靠魔法持续构建或保持安全;必须有人让整个技术栈存活下去。

这次跃升中还藏着一些功能:FFmpeg 8 带来了 APV 解码,而 VLC 本身新增了 ATRAC3 和 ATRAC9,因此 MiniDisc 抓轨和 PSP 时代的音频现在开箱即播。媒体保存也包括索尼那些奇怪的专有格式。

其余新功能,快速过一遍:MP4 中的 CEA-708 隐藏字幕、SRT 监听模式、支持 ED25519 主机密钥的 SFTP 公钥认证、基于 librist 重构的 RIST 输入输出,以及从文件名和 SSA/ASS 元数据中更好地检测字幕语言。在 Windows 上,NV12 DirectShow 采集、UWP 兼容性工作,以及修复夏令时切换时启动极慢的问题(#29685)。在 macOS 上,AudioToolbox MIDI 合成器在近期版本中不再崩溃。此外还有 MKV、MP4、MPEG-TS、Ogg、AVI、WebVTT、FLAC 和 HEVC 中一如既往的一轮修复:多媒体动物园从不休眠。

还有一些清理工作:NPAPI 浏览器插件被移除,距离浏览器取消运行它的能力已过去多年,长期损坏的 youtube.lua 也随之而去,RealRTSP 不再随附。完整发行说明见 videolan.org。

13 年后,一把新的更新密钥

有一处变化你可能会真正注意到,而我宁愿由我来告诉你,而不是从一个偏执的论坛帖子里听说。VLC 用来验证自身更新的密钥可追溯到 2013 年,而且是 DSA-1024。这两点都没能经受住时间的考验。3.0.24 将更新验证切换为新的 RSA-4096 密钥,而且既然改到了这里,更新检查现在在 Windows 7 及更高版本上使用 HTTPS。

轮换用于验证更新的密钥是一个经典的引导问题:你如何信任新密钥?过渡的方式正如你所期望的那样。现有安装会下载新的公钥,而该公钥由它们已经信任的旧密钥签名。所以如果你看到 VLC 在更新期间获取新的 VideoLAN 公钥:这是预期行为。这是过渡机制,而不是你的媒体播放器在即兴发挥密钥管理。

与此同时,在 IBC:一台 G3、一台 Pentium III 和 AV2

发布前几天,VideoLAN 在阿姆斯特丹的 IBC 上,我们的展位并不完全是广播行业的标准配置:我们重建了一个 1990 年代青少年的卧室,并在里面摆满了真实的机器。

一台 1998 年的 iMac G3 正在运行 VLC。旁边,一台 1999 年的 Pentium III 在 Windows XP 下,用普通 VLC 构建版进行实时 H.264 软件解码,作为 Kyber 流的客户端,在现代机器上远程运行《赛博朋克 2077》。没有特殊的演示构建版;那台老机器确实在干活。

在展位的另一侧,我们展示了几乎相反的东西:dav2d,我们的开源 AV2 解码器,在规范发布几个月后就在普通手机和平板上解码 1080p AV2,旁边是最新的 VLC 4.0 工作,包括超过 180 种语言的自动字幕。

该展位赢得了 IBC 的最佳展位奖,这很不错。但演示比奖杯更能说明问题:兼容性不是怀旧。让一台 25 年前的计算机保持有用,和让一个全新的编解码器在普通设备上运行,是同一种工程哲学。软件不应该判定你的硬件已经死亡,而且一个编解码器只有在所有人都能解码它时才真正存在。这一直是 VLC 的约定:几乎什么都能播,几乎在任何东西上都能播。3.0.24 仍然可以从 Windows XP 到 Windows 11、从 macOS 10.7 到当前 macOS,在 Linux、各种 BSD 上运行,是的,还有 OS/2。

结论

让旧软件存活和构建下一代并不是对立的工作。在开源中,它们通常是同一项工作。

本次发布的大部分工作,尤其是安全方面的工作,是由主权技术基金资助的:这笔公共资金被刻意用于对数亿人依赖的软件进行不起眼却必要的维护。对数百份安全报告进行分类、更新 49 个库并轮换加密密钥,不会产生光鲜的截图,但正是这些工作让一款媒体播放器值得信赖。我在一月份曾详细撰文说明为什么这种模式很重要;这些论述至今依然成立。如果你是德国人,你可以感谢你们的议员。

VLC 会自行向你提供更新,你也可以从 videolan.org 获取。更新你的设备,更新你家人的设备,然后就把这事忘掉:这正是关键所在。

现在,回到 VLC 4.0。欢迎提交补丁。

来源:Hacker News · jbkempf.com