关键漏洞信息 CVE ID: CVE-2020-26216 Severity: Moderate Affected Versions: - 2.0.0-2.0.7 - 2.1.0-2.1.6 - 2.2.0-2.2.3 - 2.3.0-2.3.6 - 2.4.0-2.4.3 - 2.5.0-2.5.10 - 2.6.0-2.6.9 Patched Versions: - 2.0.8, 2.1.7, 2.2.4, 2.3.7, 2.4.4, 2.5.11, 2.6.10 漏洞描述 问题: - 三种XSS漏洞影响Fluid。 具体问题: 1. TagBasedViewHelper允许通过恶意构造的additionalAttributes数组进行XSS攻击。 2. 使用CompileWithContentArgumentAndRenderStatic特性的ViewHelpers在escapeOutput=false时接收未转义的内容参数。 3. AbstractConditionViewHelper的子类接收未转义的then和else参数。 解决方案 升级版本: 更新到2.0.8、2.1.7、2.2.4、2.3.7、2.4.4、2.5.11或2.6.10版本。 具体变化: 1. 对additionalAttributes中的键进行显式转义。 2. 检测并转义没有显式禁用转义的情况。 3. 将AbstractConditionViewHelper子类的then和else参数定义为转义。 影响案例 修复对TagBasedViewHelper的使用没有影响任何有效用例。 使用“内容参数”且定义了escapeOutput=false的ViewHelpers将变量传递给子节点时需要特别注意。 条件ViewHelper使用then或else参数时也需要特别注意,除非变量有意未转义。 致谢 致谢Jonas Eberle和Sinan Sekerci报告此问题。