CVE-2026-83805: Nautobot: Authorization bypass in approval workflow REST API allows self-approval and unauthorized activation of scheduled jobs

Published Sep 22, 2026
·
Updated

Impact This is an authorization bypass that escalates into unauthorized server-side job execution.

1. Primary impact - self-approval: The approver checks (approver-group membership, change permission on the object under review, one-response-per-user) are enforced only in the approve/deny actions on ApprovalWorkflowStage. The generic ApprovalWorkflowStageResponse create endpoint enforces none of them, so a user holding only extras.addapprovalworkflowstageresponse can POST approved responses directly and drive a stage past its minapprovers threshold with no legitimate approver involved. The serializer also exposes user and state as writable, letting the attacker attribute responses to arbitrary users.

2. Escalated impact job activation: Because the approval workflow gates a ScheduledJob, self-approval does not stop at the approval record. Stage approval cascades through ApprovalWorkflow.save() to onworkflowapproved(), which sets the target job to enabled/active.

Patches

Fixed in Nautobot v3.1.8

Workarounds Restrict the extras.addapprovalworkflowstageresponse permission so that no untrusted user holds it; approval responses should only ever be created via the stage approve/deny actions. There is no configuration flag that disables the generic create endpoint prior to the patch.

Other sources

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.addapprovalworkflowstageresponse can submit approved responses directly, while writable user and state fields permit responses to be attributed to arbitrary users. These forged responses can satisfy minapprovers, approve the workflow, and activate its gated ScheduledJob without a legitimate approver. This issue is fixed in version 3.1.8.

MITRE

Affected Software

2 affected componentsFixes available
Nautobot Nautobot>=3.0.0<3.1.8
pip/nautobot>=3.0.0<3.1.8
3.1.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/nautobot to a version that resolves this vulnerability.

    Fixed in 3.1.8
  2. Upgrade

    Upgrade Nautobot to a version that resolves this vulnerability.

    Fixed in 3.1.8
  3. Configuration

    Restrict the extras.add_approvalworkflowstageresponse permission so that no untrusted user holds it; create approval responses only via the stage approve/deny actions.

    Nautobot approval workflow extras.add_approvalworkflowstageresponse permission = restricted to no untrusted users

Event History

Sep 22, 2026
CVE Published
via MITRE·07:47 PM
Data Sourced
via MITRE·07:47 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:17 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·08:37 PM
Data Sourced
via GitHub·08:37 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who can exploit this issue?

Any authenticated user granted the extras.add_approvalworkflowstageresponse permission can exploit the vulnerable create endpoint. They do not need membership in an approver group or change permission on the object under review.

2

What can an attacker do through the vulnerable endpoint?

An attacker can submit forged approved workflow-stage responses, including responses attributed to arbitrary users. Those responses can satisfy the required minimum approver count, approve a workflow, and activate a ScheduledJob that the workflow gates.

3

Are normal approval safeguards sufficient to prevent exploitation?

No. The vulnerable generic create endpoint does not enforce the approver-group, object change-permission, or one-response-per-user checks used by the intended approve and deny actions.

4

How can this be remediated?

Upgrade Nautobot to version 3.1.8, which fixes the issue. The affected versions are 3.0.0 through versions before 3.1.8.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203