CVE-2024-40729

6.1 MEDIUM

📋 TL;DR

This cross-site scripting (XSS) vulnerability in NetBox v4.0.3 allows attackers to inject malicious scripts into the Name parameter when adding interfaces, which could execute arbitrary code in victims' browsers. Organizations running vulnerable NetBox instances are affected, particularly those with user-facing interfaces. The vulnerability requires an attacker to have access to the interface creation functionality.

💻 Affected Systems

Products:
  • NetBox
Versions: v4.0.3
Operating Systems: All platforms running NetBox
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects instances where users can access the /dcim/interfaces/add/ endpoint. Authentication requirements may vary by configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform actions as authenticated users, redirect users to malicious sites, or compromise administrative accounts leading to full system takeover.

🟠

Likely Case

Attackers with access to the interface creation form could inject malicious scripts that execute when other users view the affected interface, potentially stealing credentials or session data.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be neutralized before execution, preventing successful exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires access to the interface creation form. Public proof-of-concept exists in the referenced GitHub repository.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v4.0.4 or later

Vendor Advisory: https://github.com/netbox-community/netbox/releases

Restart Required: Yes

Instructions:

1. Backup your NetBox database and configuration. 2. Update NetBox to version 4.0.4 or later using pip: 'pip install --upgrade netbox'. 3. Run database migrations: 'python manage.py migrate'. 4. Restart the NetBox service.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize the Name parameter before processing

Implement custom validation in the interface creation view to strip or escape HTML/JavaScript characters

Output Encoding

all

Ensure all user-controlled data is properly encoded when rendered in templates

Modify templates to use Django's autoescape or |safe filter appropriately

🧯 If You Can't Patch

  • Restrict access to the /dcim/interfaces/add/ endpoint to trusted users only
  • Implement a web application firewall (WAF) with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Check if your NetBox version is 4.0.3 by visiting the admin interface or running: 'python manage.py version'

Check Version:

python manage.py version

Verify Fix Applied:

After updating, verify the version is 4.0.4 or later and test the interface creation form with XSS payloads

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /dcim/interfaces/add/ with script tags or JavaScript in parameters
  • Multiple failed interface creation attempts with suspicious payloads

Network Indicators:

  • HTTP requests containing <script> tags or JavaScript in the Name parameter
  • Unusual traffic patterns to the interface creation endpoint

SIEM Query:

source="netbox.log" AND (uri_path="/dcim/interfaces/add/" AND (param_name="name" AND param_value MATCHES "(?i)<script|javascript:"))

🔗 References

📤 Share & Export