IPBUF安全漏洞报告
English
CVE-2025-67202 CVSS 6.1 中危

CVE-2025-67202 Sidekiq-cron 跨站脚本漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2025-67202
漏洞类型
XSS (跨站脚本)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Sidekiq-cron

相关标签

XSSCross-Site ScriptingSidekiq-cronRubyWeb SecurityCWE-79

漏洞概述

Sidekiq-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 通常有鉴权,但若配置不当或特定路由未保护,则存在风险)。成功利用后,攻击者可利用受害者的会话执行任意操作。

攻击链分析

STEP 1
1. 侦察
攻击者识别目标系统正在使用 Sidekiq-cron 2.3.1 或更早版本。
STEP 2
2. 武器化
攻击者构造包含恶意 JavaScript 代码的 URL 字符串(Payload)。
STEP 3
3. 投递
攻击者通过系统接口或未授权访问,将包含恶意 URL 的任务配置注入到 Sidekiq-cron 的作业队列中。
STEP 4
4. 利用
系统管理员或授权用户访问 Sidekiq Web UI 管理界面,浏览包含恶意任务配置的页面。
STEP 5
5. 执行
服务器端渲染 cron.erb 模板时,未过滤的 Payload 被植入响应 HTML,受害者浏览器解析并执行恶意脚本,导致 Cookie 窃取或会话劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2025-67202 # This demonstrates how a malicious URL can trigger XSS in Sidekiq-cron <= 2.3.1 # The vulnerability exists in the 'cron.erb' template where the URL is rendered unsanitized. require 'sidekiq-cron' require 'sidekiq/web' # Malicious job configuration simulating user input job_config = { 'name' => 'XSS_PoC_Job', 'class' => 'HardWorker', 'cron' => '* * * * *', # Vulnerable Field: 'url' or similar parameter rendered in cron.erb 'url' => 'javascript:alert("CVE-2025-67202_XSS")' # Alternatively, try HTML injection if the context allows: # 'url' => '"><script>alert(document.cookie)</script>' } # Simulating loading the job into Redis/Sidekiq # In a real attack, this would be done via API or compromised access Sidekiq::Cron::Job.load_from_hash(job_config) puts "Malicious job loaded. View the Sidekiq Web UI to trigger the XSS." # Explanation: # 1. The job is persisted with the malicious 'url'. # 2. When an admin visits the Sidekiq Web UI, cron.erb is rendered. # 3. The template outputs the 'url' value directly into the HTML. # 4. The browser executes the javascript: protocol or script tag.

影响范围

Sidekiq-cron <= 2.3.1

防御指南

临时缓解措施
建议用户立即将 Sidekiq-cron 组件升级至 2.4.0 或更高版本,该版本已修复此漏洞。如果无法立即升级,应严格限制 Sidekiq Web 界面的网络访问权限,仅允许内部可信网络访问,并确保管理员不要点击来源不明的链接或在系统存在可疑任务时访问管理界面。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表