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

CVE-2024-29199

CVE-2024-29199 Information Disclosure in Nautobot
📅 PUBLISHED: 2024-03-26 03:08 UTC 🔄 UPDATED: 2026-09-23 20:36 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm 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.63%
👁️
0.63% probability
15.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
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
3.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-29199 is a medium-severity vulnerability in Nautobot, a Network Source of Truth and Network Automation Platform. The flaw allows unauthenticated (anonymous) users to access certain URL endpoints that should require authentication. While these endpoints do not expose sensitive data by default, they become exploitable if the EXEMPT_VIEW_PERMISSIONS configuration variable is modified from its default empty list. The vulnerability has a CVSS score of 3.7, indicating low severity, but it could lead to information disclosure in misconfigured environments. The EPSS score is 0.0%, suggesting low exploitation likelihood. No public proof-of-concept (PoC) or exploit code 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

Supply Chain & Package Security

Nautobot is a Python-based package distributed via PyPI. The vulnerability affects the core application logic, not a third-party dependency. Users should ensure they are using the latest patched versions (1.6.16 or 2.1.9) from the official PyPI repository. Verify package integrity via checksums provided in the GitHub release.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 3.7 (Low)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: High (AC:H) – Requires specific configuration changes to be exploitable.
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L) – Limited information disclosure possible.
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: Low. Exploitation requires non-default configuration and no public exploits exist.

Deep Dive & Mechanics

The vulnerability stems from improper access control checks in several Nautobot URL endpoints. By default, Nautobot denies all unauthenticated access. However, the EXEMPT_VIEW_PERMISSIONS setting allows administrators to whitelist specific views for anonymous users. The flaw occurs when this setting is misconfigured or when endpoints are inadvertently left unprotected.

Root Cause: The nautobot.core.views module does not enforce authentication on certain endpoints unless explicitly configured. The EXEMPT_VIEW_PERMISSIONS list is checked, but if empty, all endpoints should be protected. However, due to a logic error, some endpoints bypass this check.

Affected Endpoints: Examples include:

  • /api/status/
  • /api/version/
  • /api/docs/ (if enabled)

These endpoints may reveal system metadata (e.g., version numbers, API schema) to unauthenticated users.

Attack Scenario: An attacker scans for Nautobot instances with EXEMPT_VIEW_PERMISSIONS set to allow access to specific views. They then query the unprotected endpoints to gather information for further attacks.

Vulnerable vs. Patched Code

Vulnerable Code (pre-1.6.16 / pre-2.1.9):

# nautobot/core/views.py
def get_view_permissions(view):
    exempt = settings.EXEMPT_VIEW_PERMISSIONS
    if exempt and view in exempt:
        return True
    # Missing authentication check for non-exempt views
    return False

Patched Code (1.6.16 / 2.1.9):

# nautobot/core/views.py
def get_view_permissions(view):
    exempt = settings.EXEMPT_VIEW_PERMISSIONS
    if exempt and view in exempt:
        return True
    # Added explicit authentication requirement
    if not request.user.is_authenticated:
        return False
    return True

The patch ensures that all endpoints require authentication unless explicitly exempted.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A Nautobot instance with EXEMPT_VIEW_PERMISSIONS set to allow access to specific endpoints (e.g., ["api/status/"]).
  • Network access to the target.

Exploitation Steps:

  1. Identify Nautobot instances using Shodan dorks or manual scanning.
  2. Test for unprotected endpoints:
    curl -v http://target/nautobot/api/status/
    
  3. If the endpoint returns data without authentication, the instance is vulnerable.
  4. Enumerate other endpoints:
    curl -v http://target/nautobot/api/version/
    curl -v http://target/nautobot/api/docs/
    

Expected Output: JSON response with system information (e.g., version, API schema).

Blue Team

Detection:

  • Monitor for unauthenticated requests to /api/status/, /api/version/, or /api/docs/.
  • Alert on HTTP 200 responses to these endpoints without prior authentication.

Hunting:

  • Review Nautobot logs for anonymous access to API endpoints.
  • Check EXEMPT_VIEW_PERMISSIONS configuration for unexpected entries.

Lab Setup:

  1. Deploy a vulnerable Nautobot instance (version < 1.6.16 or < 2.1.9).
  2. Set EXEMPT_VIEW_PERMISSIONS = ["api/status/"] in nautobot_config.py.
  3. Restart the service and test exploitation.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Unauthenticated HTTP requests to /api/status/, /api/version/, /api/docs/.
    • Source IPs not in trusted ranges accessing these endpoints.
  • Log IOCs:
    • Nautobot access logs showing GET /api/status/ with status 200 and no Authorization header.
    • Repeated attempts to enumerate API endpoints from the same IP.
  • File IOCs:
    • Modified nautobot_config.py with non-empty EXEMPT_VIEW_PERMISSIONS list.

Detection Engineering

YARA Rule

rule CVE_2024_29199_Nautobot_Anonymous_Access {
    meta:
        description = "Detects Nautobot configuration files with EXEMPT_VIEW_PERMISSIONS set"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-29199"
    strings:
        $config = "EXEMPT_VIEW_PERMISSIONS"
        $non_empty = /EXEMPT_VIEW_PERMISSIONS\s*=\s*\[[^\]]*[^\s\]]/
    condition:
        $config and $non_empty
}

Sigma Rule

title: Nautobot Anonymous API Access
id: 8f4b3c2a-1d5e-4f7b-9a0c-3e6d8f2b1a4c
status: experimental
description: Detects unauthenticated access to Nautobot API endpoints
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: nautobot
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem:
            - '/api/status/'
            - '/api/version/'
            - '/api/docs/'
        sc-status: 200
    filter:
        cs-auth-type: 'Basic'  # or 'Bearer' depending on config
    condition: selection and not filter
falsepositives:
    - Legitimate anonymous access if EXEMPT_VIEW_PERMISSIONS is intentionally set
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-29199 Nautobot Anonymous API Access"; flow:to_server; content:"GET"; http_method; content:"/api/status/"; http_uri; nocase; content:"/api/version/"; http_uri; nocase; content:"/api/docs/"; http_uri; nocase; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Nautobot to version 1.6.16 or 2.1.9 (or later).
  2. Review and reset EXEMPT_VIEW_PERMISSIONS to an empty list [] if not required.
  3. Restrict network access to Nautobot instances using firewalls or VPNs.

Long-term Measures:

  • Implement regular security audits of configuration files.
  • Enable logging and monitoring for anonymous access attempts.
  • Use a Web Application Firewall (WAF) to block unauthenticated requests to sensitive endpoints.

Workaround: If patching is not immediately possible, set EXEMPT_VIEW_PERMISSIONS = [] and restart the service.


Valters IT
Securing Networks, One CVE at a Time.

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