查看原文
其他

热门Ruby 库中存在严重的命令注入漏洞

Ben Dickson 代码卫士 2022-05-23

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士


开发人员修复了用于解析和转换 AsciiDoc 文件的热门 Ruby库中存在一个命令注入漏洞。


命令注入漏洞可使攻击者在运行应用程序的服务器上执行任意操作系统命令,一般可导致该应用程序及其所有数据遭完全攻陷。这个Ruby 库是 asciidoctor-include-ext,它是Asciidoctor 库的扩展,可将远程 URL 和本地文件加入 AsciiDoc 文档中。它是一个可扩展库。



注入恶意命令


GitLab 的安全工程师 Joern Schneeweisz 发现,他可以强制 asciidoctor-include-ext 通过将构造的输入字符串发给工具的方法执行任意命令。他指出,“asciidoctor-include-ext 使用 `open`/`IO.foreach` 包含文件和URL。当将竖线符号`|some_command --some argument` 预置,从该命令的标准输出而非文件读取时,这两种方法可用于执行命令。”

成功攻击客使具有受陷进程任意权限的攻击者渲染 AsciiDoc 文件。该漏洞的CVSS评分为10分。他表示,“由于在正常的使用该扩展的asciidoctor 文档渲染中就可触发该漏洞,因此令人担忧。Exploit 本身非常容易,修复方案的提交信息中已提供了相关样本。”



已存在数十年之久的向量


有意思的是,这种漏洞在2015年就已出现。当时,安全研究员 Egor Homakov 在博客文章中详细说明了用于 asciidoctor-include-ext 的 Ruby 封装库如何可被用于远程代码执行攻击中。

Homakov 指出,“Ruby 的 open-uri 默认行为非常危险,易遭此类RCE漏洞影响。应当将其删除或分到不同的函数如openSystem(配有竖线|)、openURI(用于URI)和openFile(用于文件),消除歧义和安全风险。我认为没人会重视这个问题并修复。这类事情会‘维持现状’,直至非常严重的漏洞发生,才会出现应对措施。我认为预置pipe 符号 | 读取命令而非文件,不仅仅在 Ruby 方法中广为使用。在大多数情况下它都可能被忽视并易于遭利用。”





代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com






推荐阅读

700多个恶意误植域名库盯上RubyGems 仓库

RubyGems出现重定向木马漏洞 可影响数百万用户




原文链接

https://portswigger.net/daily-swig/command-injection-bug-patched-in-ruby-library-for-converting-asciidoc-files


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存