概述
Bootstrap 是一个 HTML、CSS 和 JS 框架,用于开发响应性强、移动优先的网站和应用程序。
在Bootstrap 4 Carousel 组件中发现了跨站脚本 (XSS) 漏洞。
根据 OWASP:跨站脚本攻击是一种注入式攻击,在这种攻击中,恶意脚本被注入到原本良性和可信的网站中。当攻击者使用网络应用程序向不同的终端用户发送恶意代码(通常以浏览器侧脚本的形式)时,就会发生 XSS 攻击。攻击者可以利用 XSS 向毫无戒心的用户发送恶意脚本。
详细信息
模块信息
- 软件包管理器:npm
- 受影响的组件: 旋转木马
- Affected versions: >=4.0.0 <=4.6.2
- 已发布软件包的链接: https://www.npmjs.com/package/bootstrap
- Github repo: https://github.com/twbs/bootstrap/
漏洞信息
An anchor element (<a>), when used for carousel navigation with a data-slide attribute, can contain an href attribute value that is not subject to proper content sanitization. Improper extraction of the intended target carousel’s #id from the href attribute can lead to use cases where the click event’s preventDefault() is not applied and the href is evaluated and executed. As a result, restrictions are not applied to the data that is evaluated, which can lead to potential XSS vulnerabilities.
复制步骤
如果用于导航的锚元素包含 data-slide 属性,但同时缺少有效的 data-target="#someCarouselId",则旋转木马组件代码不会正确提取和净化该元素 href 属性中的数据。有效 data-target 的存在将覆盖 href,XSS 将不会被评估。
请参见下一节的概念验证。
代码示例
<div id="myCarousel" class="carousel"></div>
<a href="javascript:alert('XSS href')" data-slide="prev">
Previous Slide
</a>
概念验证
带代码的完整概念验证可在此处查看。
荣誉
- K(发现者)
缓解
Bootstrap 4 已达到生命周期终点。 受影响组件的用户应采用以下缓解措施之一:
- 迁移到更新版本的 Bootstrap
- 打上自己的补丁
- 利用 HeroDevs 这样的商业支持合作伙伴提供 EOL 后的安全支持。
解决问题
尽管 Bootstrap 版本 4 已达到生命周期的末期,HeroDevs 仍加紧提供了一个关键补丁来解决此漏洞。该补丁可确保 href 属性得到正确的消毒,从而阻止通过该媒介进行 XSS 攻击的可能性。
购买了 Bootstrap 永无止境支持服务的 HeroDevs 客户已在 Bootstrap 4 的最新 NES 版本([email protected])中收到了此问题的修复程序。如果您尚未安装最新版本或需要帮助,请联系我们的支持团队寻求帮助。
对于所有其他 Bootstrap 4 用户,请考虑尽快从 Bootstrap 4 迁移。或者,请联系我们,了解从 HeroDevs 接收Bootstrap 4 安全更新有多简单。
学习与预防
为了进一步帮助社区,HeroDevs 提供了详细的指导,以防止今后出现类似的漏洞。主要策略包括对数据输入进行消毒,特别是那些与动态旋转木马导航等关键组件交互的数据输入。我们还建议定期检查和更新第三方库,以便在潜在的安全漏洞被利用之前抓住并解决它们。
结论
CVE-2024-6531 提醒我们,即使软件已经达到报废年限,也必须对其进行维护并确保其安全。有了积极的措施和社区的支持,我们就能确保为所有用户提供一个更安全的数字环境。
如果您有兴趣获得Bootstrap 4和支持库的安全性、合规性和兼容性支持,请联系我们。
确保安全,并使用 HeroDevs 提供的最新补丁更新您的系统。关注我们的博客,了解更多见解和安全更新。
每当我们支持的开源软件修复了新的漏洞,我们就会发出警报。