Cloudanix VulnDB

CVE-2025-67202

Medium · 6.1

CVSS

6.1

EPSS

0.2%

Published

May 7, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a background job scheduling tool could allow an attacker to trick an administrator into running malicious code, potentially enabling the attacker to take over their account and tamper with scheduled tasks.

Exploitation
Requires User Interaction
Attacker needs
None
Complexity
Low
Impact
Data Exposure
Component
Library
Class
XSS
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

A reflected cross-site scripting (XSS) vulnerability in the Sidekiq-cron web interface allows an attacker to inject arbitrary JavaScript code into the browser of a user. The flaw exists because a crafted URL is rendered in the `cron.erb` template without proper output encoding or sanitization. Because the scope can be changed (S:C), the injected script can execute in the context of the application's origin, enabling it to access and manipulate data beyond the vulnerable component itself, such as stealing session cookies or making API calls on behalf of the user.

Why it matters to the business

An attacker can exploit this vulnerability to hijack the session of an authenticated user, such as an administrator, who visits a malicious link. This could allow the attacker to impersonate the user and perform unauthorized actions within the application, including viewing, modifying, or deleting critical scheduled jobs. Disruption of these jobs could impact core business operations, and the session hijacking could lead to further compromise of sensitive data or systems accessible to the compromised user account.

How an attack unfolds

An attacker begins by crafting a malicious URL that targets the Sidekiq-cron web interface. This URL includes a JavaScript payload embedded within its parameters. The attacker then distributes this URL to a target user, typically an administrator with access to the Sidekiq dashboard, through social engineering tactics like a phishing email. When the victim clicks the link, their browser sends a request to the vulnerable application. The application's `cron.erb` view template renders the page, but fails to sanitize the URL parameters, causing the attacker's JavaScript payload to be executed in the victim's browser. This script can then steal the user's session cookies and send them to an attacker-controlled server, allowing the attacker to take over the user's session.

How to fix it

To remediate this vulnerability, upgrade the `sidekiq-cron` gem to a version later than 2.3.1. Update your application's `Gemfile` to require a patched version (e.g., `gem 'sidekiq-cron', '~> 2.4'`) and run `bundle update sidekiq-cron` to apply the fix. If an immediate upgrade is not possible, consider using a Web Application Firewall (WAF) to filter requests containing common XSS payloads targeting the Sidekiq-cron web interface as a temporary mitigation.

How to confirm the fix worked

To validate the fix, inspect your application's `Gemfile.lock` to ensure that the installed version of `sidekiq-cron` is greater than 2.3.1. You can also run `bundle show sidekiq-cron` in your application's directory to confirm the active version. To test for the vulnerability in a safe, non-production environment, use a web vulnerability scanner or manually craft a URL with a benign XSS payload (e.g., `https://<your-app>/sidekiq/cron?payload=<script>alert('XSS')</script>`) and verify that the script does not execute when the page is loaded.

Typical attack path

  1. The attacker crafts a malicious URL containing a JavaScript payload targeting the Sidekiq-cron web UI.
  2. The attacker uses social engineering to trick an authenticated user into clicking the malicious URL.
  3. The victim's browser sends a request to the vulnerable application, including the malicious payload in the URL.
  4. The server-side template (`cron.erb`) renders the response, improperly embedding the unescaped payload into the HTML.
  5. The attacker's JavaScript code executes in the victim's browser, leading to session cookie theft or other malicious actions.
  6. The attacker uses the stolen session to impersonate the user and perform unauthorized actions.

How to detect it

To detect potential exploitation, monitor web server and WAF logs for inbound GET requests to the Sidekiq-cron web interface path (commonly `/sidekiq/cron`). Look for requests where URL parameters contain suspicious strings such as `<script>`, `onerror=`, `onload=`, `javascript:`, or their URL-encoded equivalents (`%3Cscript%3E`, etc.). A successful attack may be followed by anomalous activity from the victim's user account, such as unexpected changes to cron jobs or unusual API calls originating from their session.

  • requests to /sidekiq/cron with url-encoded '<script>' tag: /sidekiq/cron.*%3Cscript%3E
  • requests to /sidekiq/cron with '<script>' tag: /sidekiq/cron.*<script>
  • requests to /sidekiq/cron with 'onerror=' attribute: /sidekiq/cron.*onerror=
  • requests to /sidekiq/cron with 'javascript:' protocol: /sidekiq/cron.*javascript:

What your security team should do

  • Immediately patch all applications using `sidekiq-cron` by upgrading the gem to a version later than 2.3.1.
  • Use a software composition analysis (SCA) tool to scan all application dependencies and identify every instance of the vulnerable library across your environment.
  • If patching is delayed, deploy WAF rules to block requests with XSS signatures targeting the Sidekiq web UI endpoints as a compensating control.

The record

Sidekiq-cron thru 2.3.1, an open-source scheduling add-on for Sidekiq, is vulnerable to a cross-site scripting (xss) vulnerability via crafted URL being rended from cron.erb.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities