CVE-2026-55429 Overview
CVE-2026-55429 is a broken access control vulnerability [CWE-639] in Coder, a platform that provisions remote development environments through Terraform. The flaw resides in the UpsertWorkspaceApp function, which overwrites an existing app's agent_id on a primary-key conflict. The related insertAgentApp routine accepts the app ID from the provisioner's CompleteJob payload without verifying it belongs to the workspace being built. Because CompleteJob executes under dbauthz.AsProvisionerd, the authorization layer does not block a cross-workspace upsert. A template author or external provisioner operator with elevated access can reassign workspace apps across tenant boundaries.
Critical Impact
An authenticated attacker with template author or external provisioner access can hijack workspace apps belonging to other workspaces, breaking tenant isolation and exposing confidential data.
Affected Products
- Coder versions prior to 2.29.7
- Coder versions 2.30.x through 2.32.6 and 2.33.x through 2.33.7
- Coder versions 2.34.x prior to 2.34.2
Discovery Timeline
- 2026-07-08 - CVE-2026-55429 published to NVD
- 2026-07-08 - Last updated in NVD database
Technical Details for CVE-2026-55429
Vulnerability Analysis
Coder provisions workspaces through provisioner daemons that report completion via a CompleteJob RPC. During completion, the daemon submits workspace app metadata, and the server persists it using UpsertWorkspaceApp. The function keys on the app ID and updates the associated agent_id when a matching row already exists. No check confirms the existing row belongs to the same workspace being built. An attacker controlling a provisioner or authoring a malicious template can supply an app ID belonging to another tenant's workspace. The upsert then rebinds that app to an agent inside the attacker's workspace.
Because the vulnerability crosses tenant boundaries, it maps to Authorization Bypass Through User-Controlled Key [CWE-639]. The attacker gains high confidentiality and integrity impact against the targeted workspace without user interaction. Availability is not directly affected, but hijacked apps may deny legitimate access.
Root Cause
The root cause is a missing ownership check in the database access layer. insertAgentApp trusted the caller-supplied ID, and UpsertWorkspaceApp executed the write under the elevated dbauthz.AsProvisionerd context. That context bypasses standard authorization policy, so cross-workspace writes were not filtered by role-based checks.
Attack Vector
Exploitation requires elevated privileges as a template author or an external provisioner operator. The attacker crafts a CompleteJob payload during a workspace build and references the target workspace_apps row ID. On upsert, the server rebinds the target app to an agent under the attacker's control, effectively routing traffic and access sessions through attacker-owned infrastructure. Refer to the GitHub Security Advisory GHSA-9rjw-3gwp-f59v and the remediation pull request for technical specifics.
Detection Methods for CVE-2026-55429
Indicators of Compromise
- Unexpected changes to the agent_id column of existing rows in the workspace_apps table, particularly across workspace or organization boundaries.
- CompleteJob audit entries referencing app IDs that predate the corresponding workspace build.
- Provisioner daemon activity from unexpected accounts or external provisioner operators outside change windows.
Detection Strategies
- Enable database-level auditing on workspace_apps and alert when agent_id updates occur for rows whose workspace_id differs from the build context.
- Correlate dbauthz.AsProvisionerd operations with the workspace ID currently being built, and flag any deviation.
- Review template author and external provisioner activity for anomalous job completion payloads.
Monitoring Recommendations
- Forward Coder application logs and PostgreSQL audit logs to a centralized analytics platform for behavioral baselining of provisioner activity.
- Monitor authentication and role assignment events for accounts granted template author or provisioner permissions.
- Track workspace app URL resolution to detect sudden redirection of user sessions to unexpected agents.
How to Mitigate CVE-2026-55429
Immediate Actions Required
- Upgrade to Coder 2.29.7, 2.32.7, 2.33.8, or 2.34.2 depending on your release train.
- Audit accounts holding template author or external provisioner roles and revoke unnecessary access.
- Review workspace_apps history for unauthorized agent_id changes since the affected versions were deployed.
Patch Information
The fix, delivered in pull request #26103, verifies that any existing workspace_apps row matching the supplied ID belongs to the workspace being built. Cross-workspace agent reassignment is now rejected. Patched releases are available at v2.29.17, v2.32.7, v2.33.8, and v2.34.2.
Workarounds
- No known workarounds are available. Upgrading to a patched release is the only remediation path documented in the vendor advisory.
- As a compensating control, restrict template creation and external provisioner registration to trusted operators until the patch is applied.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

