# Bug report: XSS vulnerability due to unescaped value in Show_Base64_offsets recipe #2344 ## 漏洞概述 在 CyberChef 的 `Show_Base64_offsets` 配方中,存在一个 XSS 漏洞。该漏洞是由于 `staticSection`(输出为 `toBase64` 且包含用户可控字母表)在 `ShowBase64Offsets.mjs` 的第 98、128 和 158 行未转义。当 `showVariable` 为 `false` 时,原始 Base64 输出作为 HTML 返回且未进行转义。结合显式的 `eval()` 调用(在 `OutputWriter.mjs` 第 373 行),允许通过构造的 URL 执行任意 JavaScript。 ## 影响范围 - **受影响版本**:CyberChef 10.24.0 及之后版本 - **受影响配方**:`Show_Base64_offsets` - **触发条件**:用户可控的字母表输入,且 `showVariable` 设置为 `false` ## 修复方案 - **修复状态**:已修复 - **修复提交**:`fixShowBase64Offsets: escape staticSection on showVariable=false (#2344)` - **修复建议**:在将 `staticSection` 包含到 HTML 输出之前,应通过 `Utils.escapeHtml()` 进行转义。 ## POC 代码 ```javascript https://gchq.github.io/CyberChef/#recipe=Show_Base64_offsets(%27Script%27%3Ealert(1)%27)ABCDEF0GHIJKLMNOPQRSTUVWXYZ0123456789+/&input=Zm9vYmFyYmF6 ```