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

CVE-2026-55429

CVE-2026-55429 Supply Chain Attack in Coder
📅 PUBLISHED: 2026-07-08 00:00 UTC 🔄 UPDATED: 2026-10-11 17:42 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.51%
👁️
0.51% probability
12.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
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
8.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-55429 is a critical authorization bypass vulnerability in Coder, a platform for provisioning remote development environments via Terraform. The flaw resides in the UpsertWorkspaceApp and insertAgentApp functions, which fail to verify that a workspace app’s agent_id belongs to the workspace being built. An attacker with elevated privileges (template author or external provisioner operator) can exploit this to overwrite an existing app’s agent ID, potentially hijacking workspace apps or gaining unauthorized access to resources. The CVSS score is 8.7 (High), and no public proof-of-concept or exploit code is available. Patches are available in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2.

⚡ 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

Coder is distributed as a Go binary and Docker image. The vulnerability affects the core server logic, not a package dependency. Organizations should verify their Coder server version and update immediately. No malicious packages or compromised dependencies have been reported.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
  • Base Score: 8.7 (High)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: High (template author or external provisioner operator)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

The high privileges required reduce the likelihood of widespread exploitation, but the impact is severe, allowing an attacker to reassign agents across workspaces and potentially execute arbitrary code or access sensitive data.

Deep Dive & Mechanics

The vulnerability exists in the database layer of Coder’s workspace management. When a workspace build completes, the provisioner sends a CompleteJob payload containing app IDs. The insertAgentApp function accepts these IDs without verifying they belong to the workspace being built. Meanwhile, UpsertWorkspaceApp performs an upsert operation that overwrites an existing app’s agent_id on a primary-key conflict. Since CompleteJob runs under the dbauthz.AsProvisionerd authorization context, the standard authorization checks are bypassed.

Attack Flow:

  1. Attacker gains template author or external provisioner operator privileges.
  2. Attacker crafts a CompleteJob payload with an app ID that belongs to a different workspace.
  3. The insertAgentApp function accepts the ID, and UpsertWorkspaceApp overwrites the agent ID of the target app.
  4. The attacker’s workspace agent now controls the target app, potentially allowing code execution or data exfiltration.

Root Cause: Lack of ownership verification for workspace app IDs during the build completion process.

Vulnerable vs. Patched Code

Vulnerable Code (pre-patch):

// insertAgentApp inserts a workspace app without verifying ownership
func insertAgentApp(db database.Store, appID uuid.UUID, workspaceID uuid.UUID) error {
    // No check that appID belongs to workspaceID
    return db.UpsertWorkspaceApp(appID, workspaceID)
}

Patched Code (post-patch):

// insertAgentApp verifies that the app ID belongs to the workspace being built
func insertAgentApp(db database.Store, appID uuid.UUID, workspaceID uuid.UUID) error {
    // Verify ownership
    app, err := db.GetWorkspaceAppByID(appID)
    if err != nil {
        return err
    }
    if app.WorkspaceID != workspaceID {
        return fmt.Errorf("app %s does not belong to workspace %s", appID, workspaceID)
    }
    return db.UpsertWorkspaceApp(appID, workspaceID)
}

The patch adds a lookup to verify that the app ID’s WorkspaceID matches the workspace being built, preventing cross-workspace agent reassignment.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites: Template author or external provisioner operator privileges on a Coder instance running a vulnerable version.

Steps:

  1. Identify a target workspace app (e.g., a web IDE or database tool).
  2. Craft a CompleteJob payload with the target app’s ID and a malicious agent ID.
  3. Submit the payload via the provisioner API.
  4. The target app’s agent is reassigned to the attacker’s workspace, granting control.

Example Payload (JSON):

{
  "job_id": "valid-job-id",
  "apps": [
    {
      "id": "target-app-id",
      "agent_id": "attacker-agent-id"
    }
  ]
}

Note: No public exploit code is available. This is a conceptual demonstration.

Blue Team (Defender)

Detection:

  • Monitor for unusual CompleteJob payloads with app IDs that do not match the workspace.
  • Alert on multiple agent reassignments for the same app within a short time.
  • Review logs for UpsertWorkspaceApp operations with unexpected workspace IDs.

Hunting:

  • Query database for workspace apps with agent IDs that belong to different workspaces.
  • Check for dbauthz.AsProvisionerd context usage in suspicious API calls.

Indicators of Compromise (IOCs)

  • Log Entries: UpsertWorkspaceApp with mismatched workspace ID and app ID.
  • Database Anomalies: Workspace apps with agent_id pointing to agents in other workspaces.
  • Network Traffic: Unusual CompleteJob API calls from non-provisioner IPs.
  • File System: Modified Terraform templates that include hardcoded app IDs.

Detection Engineering

YARA Rule

rule CVE_2026_55429_Coder_AppID_Bypass {
    meta:
        description = "Detects Coder workspace app ID ownership bypass attempts"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-55429"
    strings:
        $s1 = "UpsertWorkspaceApp" ascii wide nocase
        $s2 = "CompleteJob" ascii wide nocase
        $s3 = "agent_id" ascii wide nocase
    condition:
        all of them
}

Sigma Rule

title: Coder Workspace App ID Ownership Bypass
id: coder-appid-bypass
status: experimental
description: Detects attempts to exploit CVE-2026-55429 by reassigning workspace app agents
author: Valters IT
logsource:
    product: coder
    service: server
detection:
    selection:
        event: "UpsertWorkspaceApp"
        workspace_id|re: "^(?!.*target-workspace).*$"
    condition: selection
falsepositives:
    - Legitimate cross-workspace operations (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-55429 Coder Workspace App ID Bypass";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/api/v2/provisionerjobs/"; http_uri;
    content:"CompleteJob"; http_client_body;
    content:"agent_id"; http_client_body;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Coder server to versions 2.29.7, 2.32.7, 2.33.8, or 2.34.2 (or later).
  2. Review and restrict template author and external provisioner operator roles.
  3. Audit existing workspace apps for unauthorized agent reassignments.

Long-Term Measures:

  • Implement additional authorization checks for all provisioner API endpoints.
  • Enable audit logging for all workspace app modifications.
  • Regularly review Coder security advisories and apply patches promptly.

Workarounds: None available.


Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

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