Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with add_approvalworkflowstageresponse permission
-
DeliveryPOST forged 'approved' response to standalone endpoint
-
ExploitAttribute responses to arbitrary users, bypass approver checks
-
ExecutionSatisfy min_approvers and approve workflow
-
ImpactActivate gated ScheduledJob without legitimate approver
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Nautobot account (versions 3.0.0 through 3.1.7) that has been granted the extras.add_approvalworkflowstageresponse object permission and network access to the REST API; the approval-workflow feature must be in use to gate ScheduledJobs. Exploitation is limited to insiders or compromised accounts with that specific permission - it is NOT unauthenticated and NOT exploitable against default installs that do not use approval workflows or that do not grant this add permission. No user interaction is needed. The flaw is that the generic create endpoint omits approver-group membership, change-permission-on-the-object, and one-response-per-user checks, and exposes writable user/state fields allowing attribution to arbitrary users. |
| Impact | This is a moderate-priority authorization flaw whose real-world risk is bounded by its access prerequisite. The vendor CVSS of 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) is internally consistent: it is network-reachable and low-complexity, but requires an authenticated account (PR:L) that has been granted the extras.add_approvalworkflowstageresponse permission. No EPSS score, CISA KEV listing, or public exploit code is present in the provided data, so exploitation status is 'no public exploit identified at time of analysis' - there is no signal of active or automated exploitation. The genuine severity driver is not memory-level impact but a broken security control: the approval-workflow gate is defeated, letting a low-privileged insider self-approve workflows and activate gated ScheduledJobs. The S:C (scope change) reflects that bypassing the approval component affects a separate component (job execution). The vendor's C:L/I:L rating is defensible but arguably understates integrity, since forging approvals to launch otherwise-gated automation jobs could have larger downstream effect than a single low-integrity write; verify against the specific jobs a deployment gates. Overall: a real but insider-gated authorization bypass, not an internet-facing unauthenticated RCE - treat as elevated-but-not-emergency, prioritized higher where the approval-workflow feature actually governs sensitive automation. |
| Exploit ScenarioDerived | A user holding only the extras.add_approvalworkflowstageresponse permission (e.g. an over-provisioned automation operator) sends a REST API POST to the standalone ApprovalWorkflowStageResponse create endpoint, submitting a response with state='approved' and the writable user/state fields set to impersonate a legitimate approver. By repeating this they satisfy min_approvers and approve the workflow, activating its gated ScheduledJob with no genuine approver involved. No public PoC is referenced, but the fix commit and advisory describe the exact API path, making the technique straightforward to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Approval workflow gating in Nautobot 3.0.0 through 3.1.7 can be bypassed by an authenticated user who holds only the extras.add_approvalworkflowstageresponse permission. The generic REST API create endpoint for ApprovalWorkflowStageResponse omits the approver-group membership check, the change permission on the object under review, and the one-response-per-user restriction that the intended approve/deny actions enforce, and it exposes writable user and state fields so a response can be attributed to an arbitrary user. An attacker can therefore post forged "approved" responses, satisfy min_approvers, approve the workflow, and activate its gated ScheduledJob without any legitimate approver - a moderate-severity authorization flaw (CVSS 6.4, CWE-285) whose real-world risk is bounded by the requirement for an insider or compromised account that has been granted that specific add permission on an instance that actually uses approval workflows; no public exploit code was identified at time of analysis, and the vendor released a patch in version 3.1.8.
RemediationAI
Vendor-released patch: upgrade to Nautobot 3.1.8, which removes the standalone ApprovalWorkflowStageResponse endpoint entirely and instead exposes responses as read-only nested data on the approval workflow stage, filtered by the extras.view_approvalworkflowstageresponse permission (see the release notes at https://github.com/nautobot/nautobot/releases/tag/v3.1.8, the fix commit 8682707d0391cbfd7694e3276127b78dc9cf29d8, and advisory GHSA-q4c5-2j6f-r476). If immediate upgrade is not possible, remove the extras.add_approvalworkflowstageresponse permission from every role that is not an authorized approver - the trade-off is that those users lose the ability to submit responses through that path, but the intended approve/deny actions on the approval workflow stage continue to work and no legitimate workflow is broken - and restrict REST API network access (reverse-proxy/firewall allow-listing of /api/extras/approval-workflow-stage-responses/) for accounts outside the approver group, accepting that this only narrows the attacker population rather than closing the flaw. Because the defect also allows the user field to be set by the caller, treat any workflow approved between 3.0.0 and 3.1.7 as untrusted: audit ApprovalWorkflowStageResponse records for responses whose attributed user was not in the approver group or where a single user appears more than once, and review ScheduledJobs that were activated by those approvals before re-enabling the gated jobs.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is improper authorization (CWE-285) in the Nautobot "extras" plugin's approval-workflow feature, a Network Source of Truth mechanism that gates the execution of ScheduledJobs behind a configurable number of approver responses. Implementation-wise, the flawed code registered a full Django REST Framework ModelViewSet for ApprovalWorkflowStageResponse at the route "approval-workflow-stage-responses", with a queryset of all objects and a serializer that exposed the user and state fields as writable. Because that generic create path was used instead of the dedicated approve/deny actions on the approval workflow stage, none of the intended guards ran: approver-group membership was never validated, object-level change permission on the item under review was never checked, and the business rule limiting each user to a single response was skipped. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N reflects a network-reachable, low-privilege, no-user-interaction issue with changed scope (S:C) - the attacker's low-privileged response-creation capability is leveraged to cross into the workflow-approval security authority - with limited confidentiality and integrity impact and no availability impact. This matters because the approval workflow is itself a security control: forging responses to reach min_approvers defeats separation-of-duties and can trigger automation (ScheduledJobs) that administrators deliberately placed behind human approval.
Know when Nautobot gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Network REST API, low complexity, but requires an authenticated account with a specific add permission (PR:L); bypassing the approval component to activate a separate ScheduledJob justifies S:C with limited C/I impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Nautobot is a Network Source of Truth and Network Automation Platform. From 3.0.0 until 3.1.8, the generic ApprovalWorkflowStageResponse create endpoint does not enforce approver-group membership, change permission on the object under review, or the one-response-per-user restriction applied by the intended approve and deny actions. A user with only extras.add_approvalworkflowstageresponse can submit approved responses directly, while writable user and state fields permit responses to be attributed to arbitrary users. These forged responses can satisfy min_approvers, approve the workflow, and activate its gated ScheduledJob without a legitimate approver. This issue is fixed in version 3.1.8.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Nautobot is a Network Automation Platform built as a web application atop the Django Python framework with a PostgreSQL
Nautobot is a Network Source of Truth and Network Automation Platform. Rated critical severity (CVSS 9.8), this vulnerab
Stored cross-site scripting in Nautobot (all versions prior to 2.4.37 on the 2.x branch and prior to 3.1.8 on the 3.x br
Nautobot is a Network Source of Truth and Network Automation Platform. Rated medium severity (CVSS 4.8), this vulnerabil
A remote code execution vulnerability in Nautobot (CVSS 7.1). High severity vulnerability requiring prompt remediation.
Nautobot is a Network Source of Truth and Network Automation Platform. Rated medium severity (CVSS 6.5), this vulnerabil
The Nautobot Device Onboarding plugin uses the netmiko and NAPALM libraries to simplify the onboarding process of a new
Nautobot is a Network Source of Truth and Network Automation Platform built as a web application atop the Django Python
Nautobot is a Network Source of Truth and Network Automation Platform. Prior to v2.4.10 and v1.6.32 , files uploaded by
Nautobot is a Network Source of Truth and Network Automation Platform built as a web application. Rated medium severity
Nautobot is a Network Source of Truth and Network Automation Platform built as a web application All users of Nautobot v
Nautobot is a Network Source of Truth and Network Automation Platform. Rated medium severity (CVSS 5.3), this vulnerabil
EUVD-2026-84815
GHSA-q4c5-2j6f-r476
NVD
CVE.org
EPSS
Exploit-DB