CVE-2020-11023

跨站脚本
影响
jQuery
>=1.0.3 <3.5.0
jQuery
未找到项目。
感叹号圆圈图标
补丁可用
HeroDevs 提供的 Never-Ending Support (NES) 版本已修复此漏洞。

复制步骤

This Medium level exploit is related to CVE-2020-11022; it can be found in jQuery versions greater than or equal to 1.0.3 and before 3.5.0. Instead of being concerned with general HTML (which CVE-2020-11022 handles), this problem may occur when passing HTML containing <option> elements, even after sanitizing it, to one of jQuery's DOM manipulation methods (i.e. .html(), .append(), and others). With input not correctly sanitized, these methods may execute untrusted code.

解决问题

客户应在全面测试后立即更新至 jQuery 3.5.0。由于3.5.0版本改变了jQuery.htmlPrefilter()中使用的sanitization方法,在一些边缘情况下,sanitization功能可能会产生意想不到的结果,因此需要进行广泛的测试。如果旧的行为是绝对需要的,jQuery 3.5.0 发布博客描述了一个安全的方式使用旧的逻辑。

学习与预防

Sanitizing untrusted data before using or storing it is a security best practice for good reason: it is a common vector for breaking code. In this case, the error was found in the code designed to sanitize the data that specifically included <option> elements.

通常情况下,使用内置的消毒方法就足够了。不过,尽管在 3.5.0 版中采用了新的消毒方法,jQuery 团队还是建议使用DOMPurify 库 进行额外的消毒,并确保使用 SAFE_FOR_JQUERY 选项。DOMPurify是一个非常流行的、高度可配置的库,专门用于帮助防止跨站脚本 (XSS) 漏洞。

结论

为了给他们的网站提供最安全的 Javascript 框架,HeroDevs NES 客户会收到这一版本的 jQuery 以及所有其他已修复的相关 CVE。

此修复直接修正了 CVE-2020-11023 所描述的潜在安全漏洞。要随时了解此类安全更新,请立即联系我们,成为我们的客户

资源

漏洞详情
身份证
CVE-2020-11023
受影响的项目
jQuery
受影响的版本
>=1.0.3 <3.5.0
出版日期
2020 年 4 月 29 日
≈ 固定日期
2023 年 2 月 1 日
固定在
严重性
中型
类别
跨站脚本