古风汉服美女图集

Homebrew 存在大漏洞,恶意代码远程操纵电脑! 网友:这不是单方面的责任

21次阅读

乔布斯当年是怎么面试我的?

自 2003 年以来,我一直很高兴为 Apple 工作,并且在那个非常特殊的时期在 Apple 工作,特别是与史蒂夫一起处理各种事情,我感到非常高兴。

来源:量子位,Mac 包管理工具 Homebrew 出现了一个大漏洞:,在 Homebrew/homebrew-cask 仓库中,通过混淆 Homebrew 项目中自动拉取请求审阅脚本中使用的库,可以合并恶意的拉取请求。,如果被滥用,攻击者可以在使用 brew 的计算机上执行任意 Ruby 代码!,,该漏洞的威胁登记在国内被 360CERT 评为 10 分严重。,漏洞的发现者是一位来自日本的后端程序员。,,当天下午,他 ” 闲来无事 ” 逛起了 HackerOne(漏洞赏金平台)。顺便看看经常使用的 Homebrew 有没有什么漏洞。,diff 检查逻辑存在缺陷,由于 Homebrew 项目使用 GitHub Actions 运行 CI 脚本,小哥查看了 .git-hub/workflows/ 下每个仓库的目录。,其中两个目录:一个负责检查用户提交的拉取请求的内容,进行批准,另一个目录负责自动合并这些被批准的代码。,拉取请求的内容被 fetch 后会被改为 diff 文件,并使用git_diff对其进行解析。,小哥一开始检查了可以通过批准请求的几个条件,没有发现问题。,但是直觉作怪,他还是掉过头去二次研究了 git_diff 仓库。,当看到其中报告了一个 ” 更改行数引发解析错误 ” 的问题时,小哥 ” 灵机一动 “:,我是不是能以某种方式对拉取请求进行伪装来满足批准条件,骗过 git_diff?,于是他分析了 git_diff 解析 diff 文件的步骤,乍一看没毛病,但是细看其中一步发现了 ” 猫腻 “:可以多次更改源 / 目标文件路径信息。,于是通过下面这两行代码:,++ “b/#{ 私藏代码写这儿 }”,++ b/Casks/cask.rb,第一行将私藏代码以上面的格式嵌入拉取请求,就可以被视为文件路径信息,而非代码变动。,第二行为更改文件路径的必需条件。,这样就可以绕过必需条件,将含有恶意代码的拉取请求视为零行更改的,” 无害 ” 请求,最终骗过 diff,获得批准,完成自动合并!开始搞事情!,,添加 ” 打印日志 ” 操作来验证此漏洞,” 今天的收获可不菲 “,小哥立即行动,提交了一个 PR,通过 Homebrew 搞起了破坏,在 HackerOne 上对此漏洞进行 PoC 演示。,以下是具体代码:,(选取在 GitHub 上无意发布了一个 API 令牌的拉取请求 iterm2.rb 进行更改 ),++ “b/#{puts ‘Going to report it – RyotaK ( https://hackeorne.com/ryotak ) ‘;b = 1;Casks = 1;iterm2 = {};iterm2.define_singleton_method ( :rb ) do 1 end}”,++ b/Casks/iterm2.rb,在第一行定义 b,Casks,iterm2,

苹果 iPad Pro 12.9 ( 2021 ) 破坏测试:比前代更耐用

第三代 iPad Pro ( 2018 ) 代表了该系列外观设计的一次变革。自那之后,iPad Pro 终于用上了新款 iPhone 的后置摄像头,轻薄的机身以及较窄的边框。

iterm2.rb 四个变量,才不会在第二行引发未定义错误,这样就可以作为有效的 Ruby 脚本执行。,通过添加这两行更改,GitHub 返回以下差异:,diff –git a/Casks/iterm2.rb b/Casks/iterm2.rb,index 3c376126bb1cf9..ba6f4299c1824e 100644,— a/Casks/iterm2.rb,+++ b/Casks/iterm2.rb,@@ -8,6 +8,8 @@,sha256 “e7403dcc5b08956a1483b5defea3b75fb81c3de4345da6000e3ad4a6188b47df”,end,+++ “b/#{puts ‘Going to report it – RyotaK ( https://hackeorne.com/ryotak ) ‘;b = 1;Casks = 1;iterm2 = {};iterm2.define_singleton_method ( :rb ) do 1 end}”,+++ b/Casks/iterm2.rb,url “https://iterm2.com/downloads/stable/iTerm2-#{version.dots_to_underscores}.zip”,name “iTerm2”,desc “Terminal emulator as alternative to Apple’s Terminal app,如前面所述,git_diff 将匹配的行 +++ “?b/ ( .* ) 视为文件路径信息,而非添加的行,因此,此差异将被视为进行 0 行更改的请求。,由于既不能修改未经授权使用的 cask,也没有在 homebrew-cask 仓库中找到一个测试 cask,小哥给 Homebrew 发邮件求助,按照工作人员的意思添加 ” 打印日志 ” 这一无害修改来验证了这个漏洞。,当其他用户执行 brew search/brew cleanup 等命令时即使没有安装目标 cask,也将执行恶意代码。,官方在3 小时之内完成了主要修复,并发布了通报。,,” 这不是单方面的责任 “,针对这次大漏洞,网友们议论纷纷,有人表示:,如果不是使用 ruby 解析 git_diff,而是使用 libgit,这个漏洞就不会发生。,如果 Apple 提供了一个功能更强大的软件包管理器,这不会发生。,如果数以百万计的 Homebrew 用户给了他们建造如此庞大的项目所需资金的一小部分,这也不会发生。,此漏洞没有单一负责方。,,另外,细心的朋友可能还记得,我们此前曾报道了一篇关于黑客用 GitHub 服务器挖矿的新闻,里面的黑客也是只需提交 Pull Request,即使项目管理者没有批准,恶意挖矿代码依然能够执行。,和这次这个漏洞一样,都是抓住了GitHub Actions 的自动执行工作流功能来 ” 钻空 “。,针对滥用 Actions 的问题,GitHub 近日也更新了帮助保护维护者的新功能,比如在任何 Actions 工作流运行之前,来自首次贡献者的 Pull Request 将需要 ** 具有写访问权限的仓库协作者的手动批准 **。,如果被滥用,攻击者可以在使用 brew 的计算机上执行任意 Ruby 代码!

TCL 创始人李东生判断国产高端芯片尚需三到五年

6 月 9 日,TCL 创始人、董事长李东生在采访中称,这轮芯片供应短缺将在未来 3 到 6 个月逐渐解决。

正文完
 
admin
版权声明:本站原创文章,由 admin 2021-06-14发表,共计2663字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。