还原 Cloudflare CDN 漏洞被利用的过程

Cloudflare 已修复其免费开源 CDNJS 中的一个严重漏洞,该漏洞可能影响互联网上 12.7% 的网站。

CDNJS为数百万网站提供超过4000个JavaScript和CSS库,这些库公开存储在GitHub上,使其成为第二大JavaScript CDN。

该漏洞利用包括使用 GitHub 和 npm 将数据包发布到 Cloudflare 的 CDNJS,以触发路径遍历漏洞,并最终远程执行代码。

如果被利用,该漏洞将导致 CDNJS 基础设施的完全攻击。

[[414098]]

从“ZIP Slip”到远程代码执行

本周,安全研究员 RyotaK 解释了他如何在研究供应链攻击的同时找到一种方法来完全攻击 Cloudflare 的 CDNJS 网络。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。在维护互联网的安全性、完整性和可用性方面发挥着关键作用,因为绝大多数网站都依赖这些服务来加载流行的 JavaScript 库和 CSS 脚本。

CDN 可能成为攻击者的目标选择,因为如果受到攻击,攻击会对许多网站、在线商店及其客户产生深远的影响。

在浏览 cdnjs.com 时,RyotaK 注意到对于 CDNJS 中尚不存在的库,他可以建议通过 CDNJS 的 GitHub 存储库添加一个新库。

用户可以请求将包发布到 CDNJS 的 GitHub 存储库

在探索了这个 GitHub 存储库以及共同使 CDNJS 生态系统工作的相邻存储库之后,RyotaK 找到了一种方法来诱使服务器执行任意代码。

特别是,研究人员研究了 cdnjs/bot-ansible 和 cdnjs/tools 中存在的脚本,包括一个自动更新脚本,有助于自动检索库更新。

这些脚本会定期使用其开发者在相应 npm 注册表上发布的较新版本的软件库更新 CDNJS 服务器。

换句话说,对于发布到 CDNJS 的 GitHub 存储库的每个库,其更新版本将从链接的 npm 注册表下载,并且 npm 版本也由库开发者维护。

RyotaK想知道,如果他发布到CDNJS的库在对应的npm版本中包含路径遍历漏洞,会发生什么。注意,npm包是以TGZ (.tar.gz)档案的形式发布的,可以很容易地使用隐藏在其中的路径遍历漏洞来制作。

研究人员首先使用 GitHub 向 CDNJS 发布了一个名为 hey-sven 的测试库,然后开始在 npm 注册表上发布更新版本的“hey-sven”。

在发布到 npm 的较新的“hey-sven”版本中,最终将由 CDNJS 的更新机器人处理,研究人员在看起来很奇怪的路径上注入了 Bash 脚本。

这些不同的路径只不过是隐藏在 ZIP/TGZ 档案中的路径遍历漏洞,这个概念在 2018 年以“ZIP Slip”方式爆发了。

2018 年 6 月 5 日,Snky 安全团队公布了一个名为 Zip Slip 的漏洞。这是一个广泛存在的文件覆盖漏洞,通过这个漏洞,攻击者可以利用一个特制的 Zip 压缩文件,从路径遍历覆盖任意文件,继而远程命令执行,发起攻击。Zip Slip 是以目录遍历的一种形式,通过从存档中提取文件来进行攻击。目录遍历漏洞的前提是攻击者可以访问文件系统中应该驻留的目标文件夹之外的部分文件系统。然后,攻击者可以覆盖可执行文件并远程调用它们,或者等待系统或用户调用它们,从而实现受害者机器上的远程命令执行。此漏洞还可能通过覆盖配置文件或其他敏感资源而造成损害,并且可能会在客户端(用户)机器和服务器上受到攻击。

攻击者主要可以利用保存目录遍历文件名的特制档案文件(例如../../evil.sh)触发 Zip Slip 漏洞。该漏洞已影响许多存档的格式,包括 tar、jar、war、cpio、apk、rar 和 7z 等大量的压缩文件。

目前 Zip Slip 漏洞已经影响了包括阿里巴巴、Google、Oracle、Eclipse、HP、Amazon、Apache、Pivotal、Linkedin 等企业的数千个项目,以及 Java、Ruby、.Net、 Go 等多种语言生态系统,其中 Java 受到的攻击尤为严重,主要是因为它没有中央仓库提供高级别归档(如 Zip)文件处理。缺乏这样的库导致易受攻击的代码片段被手工制作,并在诸如 Stack Overflow 等开发者社区中共享。

“hey-sven”库的 npm 1.0.1 和 1.0.2 版本包含路径遍历漏洞

一旦 CDNJS 服务器处理了精心制作的“hey-sven”npm 档案,这些 Bash 脚本的内容将在服务器上执行。

但是,研究人员不想意外覆盖现有脚本,因此在概念验证 (PoC) 测试期间,他首先使用符号链接漏洞读取他即将覆盖的文件的内容。

由于Git在默认情况下支持符号链接,所以可以通过在Git存储库中添加符号链接来从cdnjs库更新服务器中读取任意文件。如果定期执行的脚本文件被覆盖执行任意命令,自动更新功能可能会被攻击,所以研究人员决定先检查任意文件读取。

一旦攻击者精心制作的 PoC击中服务器,RyotaK 就能够意外地将敏感机密(例如 GITHUB_REPO_API_KEY 和 WORKERS_KV_API_TOKEN)转储到 CDN 提供的脚本中,网址为https://cdnjs.cloudflare.com/…

初始符号链接 PoC 的输出为研究人员提供了密钥

GITHUB_REPO_API_KEY是一个授予写作权限的API密钥,使攻击者能够修改CDNJS上的任何库甚至篡改cdnjs.com网站本身。

另一方面,WORKERS_KV_API_TOKEN 秘密可用于篡改存在于 Cloudflare Workers 缓存中的库。

通过组合这些权限,CDNJS 的核心部分,例如 CDNJS 的原始数据、KV 缓存,甚至 CDNJS 网站,都可以完全被篡改。

Cloudflare 发布了许多修复程序以修复漏洞

研究人员于 2021 年 4 月 6 日通过 HackerOne 的漏洞披露计划向 Cloudflare 报告了此漏洞,并看到 Cloudflare 的团队在数小时内应用了间歇性修复。

BleepingComputer 看到的初始修复旨在解决符号链接漏洞:

Cloudflare 的 CDNJS (GitHub) 应用的初始修复

然而,根据研究人员的说法,由于 CDNJS 生态系统的复杂性,在接下来的几周内对不同的存储库应用了一系列更具体的修复。

RyotaK与BleepingComputer分享了第一个修复以拒绝Git存储库中的符号链接为中心,但它只修复了部分问题。

修复人员首先试图拒绝符号链接,但注意到机器人当前的设计太危险了。因此他们隔离了最危险的功能。

对于其他功能,修复人员应用了 AppArmors。

Application Armor 或 AppArmor 是一种安全功能,它使用预定义的配置文件限制在基于 Unix 的环境上运行的程序的功能,以便程序不会无意中超出其预期的访问范围。

研究人员还与 Cloudflare 部署的 BleepingComputer 共享了一系列修复程序,以保护自动机器人处理更新的库:

Cloudflare 对 CDNJS 进行了多项更改以解决该漏洞

虽然这个漏洞可以在没有任何特殊处理的情况下被利用,但它可能会影响许多网站。鉴于供应链中存在许多漏洞,这些漏洞很容易被利用但影响很大。

正如 BleepingComputer 先前报道的那样,影响数千家在线商店的 Magecart 供应链攻击源于对Volusion 的 CDN 基础设施的攻击。

本文翻译自:

https://www.bleepingcomputer.com/news/security/critical-cloudflare-cdn-flaw-allowed-compromise-of-12-percent-of-all-sites/ 

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/146514.html<

(0)
运维的头像运维
上一篇2025-03-11 03:15
下一篇 2025-03-11 03:16

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注