概述
技术细节
entry = (ZipEntry)entries.nextElement();
if(!entry.isDirectory()) {
v5 = zipfile.getInputStream(entry);
bis = new BufferedInputStream(v5);
File v8 = new File(unzip_dir + File.separator + entry.getName());
File v0_13 = v8.getParentFile();
if(v0_13 != null && !v0_13.exists()) {
v0_13.mkdirs();
}
fos = new FileOutputStream(v8);
v0_10 = new BufferedOutputStream(fos, 0x800);
byte[] v1_4 = new byte[0x800];
while(true) {
int v2_2 = bis.read(v1_4, 0, 0x800);
if(v2_2 == -1) {
goto label_200;
}
v0_10.write(v1_4, 0, v2_2);
}
}
影响
同一网络上的攻击者可以滥用Powerkeeper应用程序以系统用户的身份在设备上写入任意文件。
缓解措施
建议受影响的用户尽快检查上述的不安全实现,确保在执行任何敏感文件操作之前会对文件路径进行验证,还可以对下载的配置文件实施完整性检查。小米已于2021年4月13日获悉此安全漏洞,该漏洞被记录为CVE-2021-0501。
END
本文始发于微信公众号(SecTr安全团队):小米MIUI Powerkeeper应用程序中的Zip Slip任意文件覆盖漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论