CVE-2025-67202Sidekiq-cron 是一个用于 Sidekiq 的开源任务调度插件。在 2.3.1 及之前的版本中,该组件存在一个跨站脚本(XSS)安全漏洞。该漏洞源于 cron.erb 模板在渲染用户提供的 URL 时未进行充分的过滤和转义,导致攻击者可以构造恶意的 URL 字符串。当管理员或其他用户访问包含该恶意 URL 的管理界面时,嵌入其中的脚本代码将在受害者浏览器中执行。由于该漏洞无需认证即可触发(虽然利用可能需要用户交互),它可能被利用来窃取会话 Cookie、执行未授权操作或重定向用户至恶意站点,对系统的机密性和完整性构成中等程度的威胁。
该漏洞位于 Sidekiq-cron 的 Web 界面渲染逻辑中,具体涉及 cron.erb 模板文件的实现。Sidekiq-cron 允许用户配置定时任务,其中可能包含指向特定资源的 URL 参数。在受影响版本(2.3.1 及更早版本)中,当系统读取任务配置并使用 ERB 模板渲染页面时,直接将用户输入的 URL 值嵌入到了 HTML 响应中,而未对特殊字符(如 <, >, &, ", ')进行 HTML 实体编码或上下文相关的转义。
攻击者首先创建一个包含 JavaScript 代码的恶意 URL(例如 javascript:alert(1) 或包含 <script> 标签的 payload),并将其配置为 Sidekiq-cron 任务的一个参数。当具有管理权限的用户登录 Sidekiq Web UI 并浏览该任务列表或详情页时,服务器端渲染 cron.erb,将未过滤的恶意 URL 直接输出到 HTML 源代码中。受害者的浏览器解析该 HTML 时,会执行其中的恶意脚本。由于 CVSS 向量显示 PR:N(无需权限)和 UI:R(需要用户交互),这表明攻击者可能诱导管理员点击特定链接,或者该漏洞点在无需登录即可访问的页面(尽管 Sidekiq 通常有鉴权,但若配置不当或特定路由未保护,则存在风险)。成功利用后,攻击者可利用受害者的会话执行任意操作。