Coder: Devcontainer recreate endpoint missing write authorization allows read-only roles to destroy containers
Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, the devcontainer recreate endpoint relied on route middleware that checked only `ActionRead` on the workspace and, unlike the sibling delete endpoint, performed no `ActionUpdate` check before triggering the destructive rebuild. Exploitation requires an existing low-privilege role with access to the target workspace. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 adds an explicit `ActionUpdate` authorization check before the agent is dialed like the delete endpoint. No known workarounds are available.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-55433
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 18:25 UTC · Revision 1
Source evidence
Coder: Devcontainer recreate endpoint missing write authorization allows read-only roles to destroy containers
core-osv · Original sourcePublished 8 Jul 2026, 00:22 UTC
Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, the devcontainer recreate endpoint relied on route middleware that checked only `ActionRead` on the workspace and, unlike the sibling delete endpoint, performed no `ActionUpdate` check before triggering the destructive rebuild. Exploitation requires an existing low-privilege role with access to the target workspace. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 adds an explicit `ActionUpdate` authorization check before the agent is dialed like the delete endpoint. No known workarounds are available.
osv:CVE-2026-55433
Complete source record
{
"id": "411a83673506ac3951827397f0afcf9654f38567185b826630385724f6390744",
"url": "https://osv.dev/vulnerability/CVE-2026-55433",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Coder: Devcontainer recreate endpoint missing write authorization allows read-only roles to destroy containers",
"summary": "Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, the devcontainer recreate endpoint relied on route middleware that checked only `ActionRead` on the workspace and, unlike the sibling delete endpoint, performed no `ActionUpdate` check before triggering the destructive rebuild. Exploitation requires an existing low-privilege role with access to the target workspace. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 adds an explicit `ActionUpdate` authorization check before the agent is dialed like the delete endpoint. No known workarounds are available.",
"evidence": "osv:CVE-2026-55433",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-55433",
"aliases": [
"CVE-2026-55433",
"GHSA-jqj2-x4c5-jfxm",
"GO-2026-5922"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/coder/coder",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "77253bfc55665027a374a5d2fb70f4ff74410326"
},
{
"introduced": "43e67d12e278e13399cffc77f132e8e628339477"
},
{
"fixed": "0374b00b63bc5043a507194f284ef298e0ea3b52"
},
{
"introduced": "f009c17217e6bad9a61ba511d23735bc1ce94da0"
},
{
"fixed": "f9486be96df392b017941ff6a6bd43a629adc86c"
},
{
"introduced": "3006da5ef7a9c27755aa5b2f3f5f05d2c8971a58"
},
{
"fixed": "d7774e5c4ca222ee89a8b6aa82b61c1f8bb81d1f"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:coder:coder:*:*:*:*:*:go:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "2.29.17"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:coder:coder:*:*:*:*:*:go:*:*",
"range": [
{
"introduced": "2.30.0"
},
{
"fixed": "2.32.7"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:coder:coder:*:*:*:*:*:go:*:*",
"range": [
{
"introduced": "2.33.0"
},
{
"fixed": "2.33.8"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:coder:coder:*:*:*:*:*:go:*:*",
"range": [
{
"introduced": "2.34.0"
},
{
"fixed": "2.34.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "77253bfc55665027a374a5d2fb70f4ff74410326"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.29.17"
},
{
"range": [
{
"fixed": "0374b00b63bc5043a507194f284ef298e0ea3b52"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.32.7"
},
{
"range": [
{
"fixed": "f9486be96df392b017941ff6a6bd43a629adc86c"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.33.8"
},
{
"range": [
{
"fixed": "d7774e5c4ca222ee89a8b6aa82b61c1f8bb81d1f"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.34.2"
}
]
}
}
],
"versions": [
"v2.29.16",
"v2.33.7",
"v2.34.1",
"v2.32.6",
"v2.32.5",
"v2.33.6",
"v2.34.0",
"v2.29.15",
"v2.32.4",
"v2.33.5",
"v2.32.3",
"v2.29.14",
"v2.33.4",
"v2.29.13",
"v2.32.2",
"v2.33.3",
"v2.29.12",
"v2.33.2",
"v2.32.1",
"v2.33.1",
"v2.33.0",
"v2.29.11",
"v2.29.10",
"v2.32.0",
"v2.33.0-rc.0",
"v2.29.9",
"v2.29.8",
"v2.32.0-rc.0",
"v2.29.7",
"v2.29.6",
"v2.29.5",
"v2.29.4",
"v2.29.3",
"v2.29.2",
"v2.29.1",
"v2.29.0",
"v2.10.0",
"v2.9.0",
"v2.6.0",
"v2.8.0",
"v2.7.1",
"v2.7.0",
"v2.5.1",
"v2.5.0",
"v2.4.0",
"v2.3.3",
"v2.3.2",
"v2.3.1",
"v2.3.0",
"v2.2.1",
"v2.1.5",
"v2.1.4",
"v2.1.3",
"v2.1.2",
"v2.1.1",
"v2.0.2",
"v0.27.1",
"v0.27.0",
"v0.26.2",
"v0.26.1",
"v0.26.0",
"v0.25.0",
"v0.24.1",
"v0.24.0",
"v0.23.7",
"v0.23.6",
"v0.23.5",
"v0.23.4",
"v0.23.3",
"v0.23.2",
"v0.23.1",
"v0.23.0",
"v0.22.2",
"v0.22.1",
"v0.22.0",
"v0.21.3",
"v0.21.2",
"v0.21.1",
"v0.21.0",
"v0.20.1",
"v0.20.0",
"v0.19.2",
"v0.19.1",
"v0.19.0",
"v0.18.1",
"v0.18.0",
"v0.17.4",
"v0.17.3",
"v0.17.2",
"v0.17.1",
"v0.17.0",
"v0.16.0",
"v0.15.3",
"v0.15.2",
"v0.15.1",
"v0.15.0",
"v0.14.3",
"v0.14.2",
"v0.14.1",
"v0.14.0",
"v0.13.6",
"v0.13.5",
"v0.13.4",
"v0.13.3",
"v0.13.2",
"v0.13.1",
"v0.13.0",
"v0.12.9",
"v0.12.8",
"v0.12.7",
"v0.12.6",
"v0.12.5",
"v0.12.4",
"v0.12.3",
"v0.12.2",
"v0.12.1",
"v0.12.0",
"v0.11.0",
"v0.10.2",
"v0.10.1",
"v0.10.0",
"rm",
"v0.9.10",
"v0.9.9",
"v0.9.8",
"v0.9.7",
"v0.9.6",
"v0.9.5",
"v0.9.4",
"v0.9.3",
"v0.9.2",
"v0.9.1",
"v0.9.0",
"v0.8.15",
"v0.8.14",
"v0.8.13",
"v0.8.12",
"v0.8.11",
"v0.8.10",
"v0.8.9",
"v0.8.8",
"v0.8.7",
"v0.8.6",
"v0.8.5",
"v0.8.4",
"v0.8.3",
"v0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.12",
"v0.7.11",
"v0.7.10",
"v0.7.9",
"v0.7.8",
"v0.7.7",
"v0.7.6",
"v0.7.5",
"v0.7.4",
"v0.7.3",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.6.6",
"v0.6.5",
"v0.6.4",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.6.0",
"v0.5.11",
"v0.5.10",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.4.4",
"v0.4.3",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.5",
"v0.3.4",
"v0.3.3",
"v0.3.2",
"v0.3.1",
"v0.3.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55433.json"
}
}
],
"modified": "2026-10-28T02:30:44.712337554Z",
"provider": "osv",
"references": [
"https://github.com/coder/coder/releases/tag/v2.29.17",
"https://github.com/coder/coder/releases/tag/v2.32.7",
"https://github.com/coder/coder/releases/tag/v2.33.8",
"https://github.com/coder/coder/releases/tag/v2.34.2",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55433.json",
"https://github.com/coder/coder/security/advisories/GHSA-jqj2-x4c5-jfxm",
"https://nvd.nist.gov/vuln/detail/CVE-2026-55433",
"https://github.com/coder/coder/pull/25812"
],
"provider_metadata": {
"cwe_ids": [
"CWE-862"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55433.json"
}
},
"related_cves": [
{
"value": "CVE-2026-55433",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 512663,
"published_at": "2026-07-08T00:22:36.304+00:00"
}