Zip Slip 是一种广泛存在的严重存档提取漏洞,允许攻击者在系统上写入任意文件,通常会导致远程命令执行。该漏洞由 Snyk Security 团队在 2018 年 6 月 5 日公开披露之前发现并负责任地披露,影响了数千个项目,包括 HP、Amazon、Apache、Pivotal 等公司的项目。此页面提供了被发现可利用或包含易受攻击的实现的库和项目的最新修复状态。
有关 Zip Slip 的技术细节的更多信息,请阅读http://snyk.io/research/zip-slip-vulnerability。
该漏洞已在多个生态系统中发现,包括 JavaScript、Ruby、.NET 和 Go,但在 Java 中尤其普遍,因为 Java 中没有提供存档(例如zip)文件高级处理的中央库。缺乏这样的库导致易受攻击的代码片段被手工制作并在StackOverflow等开发者社区之间共享。
该漏洞利用了包含目录遍历文件名(例如)的特制存档。Zip Slip../../evil.sh漏洞会影响多种存档格式,包括tar、、、、和jar
war
cpio
apk
rar
7z
以下是一个存在漏洞的代码示例,其中显示ZipEntry路径在未经过任何路径验证的情况下连接到目标目录。许多生态系统中的许多存储库中都发现了类似的代码,其中包括数千个应用程序所依赖的库。
Enumeration<ZipEntry> entries = zip.getEntries();
while (entries.hasMoreElements()) {
ZipEntry e = entries.nextElement();
File f = new File(destinationDir, e.getName());
InputStream input = zip.getInputStream(e);
IOUtils.copy(input, write(f));
}
如果您发现包含类似易受攻击代码的库或项目,我们请求您向此存储库做出贡献,以便为社区提供有关 Zip Slip 漏洞的最新信息。要做出贡献,请参阅我们的CONTRIBUTING.md文件。
Zip Slip Vulnerability (Arbitrary file write through archive extraction)
https://github.com/snyk/zip-slip-vulnerability/
原文始发于微信公众号(Ots安全):Zip Slip 漏洞(通过存档提取进行任意文件写入)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论