我正试图弄清楚我们是否expose 在最近报道的CVE-2018-25032漏洞之下,正如所说.NET确实在DeflateStream实现中使用了zlib库.
我似乎找不到微软发布的关于这个的任何信息.
有没有办法找到答案.NET Framework版本使用哪个版本的zlib?
我正试图弄清楚我们是否expose 在最近报道的CVE-2018-25032漏洞之下,正如所说.NET确实在DeflateStream实现中使用了zlib库.
我似乎找不到微软发布的关于这个的任何信息.
有没有办法找到答案.NET Framework版本使用哪个版本的zlib?
根据DeflateStream docs page的说法.NET Framework 4.5之前的版本根本不使用zlib:
从这个开始.NET Framework 4.5中,DeflateStream类使用zlib库
我不知道zlib的每个后续版本有哪些exact个版本.NET框架使用(随着时间的推移,版本可能会有一些小补丁发生变化),但我可以根据每个补丁出现的时间给出一个近似值.NET Framework版本已发布,并将其与当时最新版本的zlib进行比较(该.NET团队很可能 Select 使用每个外部库的最新版本,包括任何给定时间可用的zlib):
.NET Framework Version | Latest zlib version upon respective .NET version release |
---|---|
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 |
正如你所看到的,所有版本的.NET Framework自添加zlib以来,使用易受此CVE影响的zlib版本.Per the author, Mark Adler,但是,DeflateStream甚至可能不会调用Z_FIXED
(参见下面的CVE信息),因此DeflateStream代码可能不会受到CVE的影响,尽管它使用的zlib版本包含上述漏洞.如果您有任何与Z_FIXED
交互的自定义代码,请使用.NET的打包zlib版本,您应该手动或显式导入zlib v1来缓解该漏洞.2.12+覆盖.NET的内置版本.
请注意,CVE和zlib的补丁非常新,最新版本的.网NET Core 6.0.3(于2022年3月8日发布)仍然使用zlib v1.2.11(自2017年起).从.GitHub存储库中的NET zlib.3文件:
.TH ZLIB 3 "15 Jan 2017" .SH NAME zlib \- compression/decompression library [...]
还有兹利布.h(自述文件)来自同一个存储库文件夹:
/* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.11, January 15th, 2017 [...]
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的具体变化).