我正在尝试确定我们是否受到最近报告的CVE-2018-25032漏洞的影响,因为.NET确实在DeflateStream实现中使用zlib库。
我似乎找不到微软发布的任何关于此问题的信息。
有没有办法找出哪个.NET Framework版本使用了哪个版本的zlib?
我正在尝试确定我们是否受到最近报告的CVE-2018-25032漏洞的影响,因为.NET确实在DeflateStream实现中使用zlib库。
我似乎找不到微软发布的任何关于此问题的信息。
有没有办法找出哪个.NET Framework版本使用了哪个版本的zlib?
我不知道每个后续版本的.NET Framework确切使用了哪个版本的zlib(版本可能随着时间的推移而在小修补程序中更改),但是我可以根据每个.NET Framework版本发布的时间以及当时最新版本的zlib进行近似计算(.NET团队最有可能选择使用任何给定时间可用的外部库的最新版本,包括zlib):从.NET Framework 4.5开始,DeflateStream类使用zlib库
.NET Framework版本 | 各自.NET版本发布时的最新zlib版本 |
---|---|
4.5 | 1.2.7 |
4.5.1 | 1.2.8 |
4.5.2 | 1.2.8 |
4.6 | 1.2.8 |
4.6.1 | 1.2.8 |
4.6.2 | 1.2.8 |
4.7 | 1.2.11 |
4.7.1 | 1.2.11 |
4.8 | 1.2.11 |
Z_FIXED
(请参阅下面的CVE信息),因此,尽管它使用了包含该漏洞的zlib版本,但DeflateStream代码可能并不容易受到CVE的影响。如果您有任何与.NET打包的zlib版本交互的自定义代码,并且正在使用Z_FIXED
,则应手动减轻漏洞或明确导入zlib v1.2.12+以覆盖.NET内置版本。.TH ZLIB 3 "15 Jan 2017" .SH NAME zlib \- compression/decompression library [...]
同时,该存储库文件夹中的zlib.h(自述文件):
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.11, January 15th, 2017
[...]
从GitHub上的ZLIB变更日志中可以看到:
ChangeLog file for zlib Changes in 1.2.12 (27 Mar 2022) [...] - Fix a bug that can crash deflate on some input when using Z_FIXED [...]
(跳过与CVE无关的行,着重关注由CVE引发的具体更改)。
DeflateStream
类中,我没有看到可以指定Z_FIXED
的方法。 - Mark AdlerZ_FIXED
或库的任何方面。我只提供OP要求的版本信息。答案仅在OP引用它的情况下提到DeflateStream。如果DeflateStream不使用Z_FIXED,则尽管.NET中包含有漏洞的zlib _version_,但使用DeflateStream的代码本身可能根本不会有漏洞... 我会更新答案以反映这种可能性。 - TylerH