Nautobot: Authorization bypass in approval workflow REST API allows self-approval and unauthorized activation of scheduled jobs
Impact
This is an authorization bypass that escalates into unauthorized server-side job execution.
-
Primary impact - self-approval: The approver checks (approver-group membership,
changepermission on the object under review, one-response-per-user) are enforced only in theapprove/denyactions onApprovalWorkflowStage. The genericApprovalWorkflowStageResponsecreate endpoint enforces none of them, so a user holding onlyextras.add_approvalworkflowstageresponsecanPOSTapproved responses directly and drive a stage past itsmin_approversthreshold with no legitimate approver involved. The serializer also exposesuserandstateas writable, letting the attacker attribute responses to arbitrary users. -
Escalated impact job activation: Because the approval workflow gates a
ScheduledJob, self-approval does not stop at the approval record. Stage approval cascades throughApprovalWorkflow.save()toon_workflow_approved(), which sets the target job to enabled/active.
Patches
Fixed in Nautobot v3.1.8
Workarounds
Restrict the extras.add_approvalworkflowstageresponse 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.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | nautobot | >= 3.0.0, < 3.1.8 | 3.1.8 |
References
- https://github.com/nautobot/nautobot/security/advisories/GHSA-q4c5-2j6f-r476
- https://github.com/nautobot/nautobot/commit/8682707d0391cbfd7694e3276127b78dc9cf29d8
- https://github.com/nautobot/nautobot
- https://github.com/nautobot/nautobot/releases/tag/v3.1.8
- https://pypi.org/project/nautobot
- https://github.com/advisories/GHSA-q4c5-2j6f-r476
- https://nvd.nist.gov/vuln/detail/CVE-2026-83805
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N- Weakness (CWE)
CWE-285, CWE-639- Platform
- Python (PyPI)
- Package
nautobot- Disclosed
- 22.09.2026
- Updated
- 11.10.2026 15:18
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-4111 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-q4c5-2j6f-r476 - CC BY 4.0
Vulnerability history: nautobot
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 19
- First → latest
- 02.2023 09.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- High 9
- Medium 6
- Low 4
Disclosures per year
- 2023: 5
- 2024: 5
- 2025: 2
- 2026: 7
-
Nautobot: Authorization bypass in approval workflow REST API allows self-approval and unauthorized activation of scheduled jobs this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.