Ownership proof for Coder IDs recorded in controller status (D11 B)
Maintainers usually reply within 1 day
@ThomasK33 is already working on this.
Since Oct 14, 2026.
Assessment
This issue has not been assessed yet.
Description
Problem
Several controllers record a Coder resource ID in the status subresource and then treat that resource as their own. Examples: CoderMCPServer status.configID, CoderAIProvider status.providerID and status.keyID, CoderTemplateTest status.templateID and status.workspaceID, and the IDs in the CoderAIGatewayKey status.
A subject with write access to the status subresource can set such an ID to another Coder resource. The controller then updates that resource to the subject's spec and deletes it with the subject's object. For CoderMCPServer this is threat T19 in the #155 plan: any config in an organization that the control plane lists.
Today only an RBAC contract protects these fields. The docs Roles never grant the status subresource, and the docs warn that resources: ["*"] also grants subresources. The #155 activation (M9) adds an opt-in admission policy that denies codermcpservers/status writes from every subject except the operator ServiceAccount (#155 decision D11, option A).
Proposal (D11 option B)
Record ownership in a form that a status writer cannot forge, for every controller kind at once. One option: an HMAC of the object UID and the Coder resource ID with an operator-held key, checked before the controller acts on a recorded ID.
Open questions:
- Where the key lives, and how it rotates.
- The recovery path when the key is lost or rotated: re-adopt by the ownership markers that the controllers already write (for example the
CoderMCPServernonce), or require a spec edit. - Migration of objects that already hold an unsigned ID.
Why a follow-up
Option B adds key storage, rotation and a recovery path, and it belongs in all controllers at once, the #154 kinds included. The #155 plan chose option A for v1 and this issue as the follow-up.
Refs #155
Refs #154
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high • Cost: $211.58
- Dominant language
- Go
- Stars
- 5
- Forks
- 3
- Avg merge
- 2h 56m
- Merged PRs (30d)
- 185
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/coder-k8s
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
CoderProvisioner: inherited key-record pruning and legacy-record limits after #420Possibly taken @ThomasK33 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
coder/coder-k8s#422 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
Similar issues
-
automation doc-healer documentation
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
tsukumogami/tsuku#2804 ·
Maintainers usually reply within 1 day
-
Anthropic /v1/messages: only the last thinking block of an assistant message is keptPossibly taken @Shayan12456 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ollama/ollama#19415 · 1 comment ·
Maintainers usually reply within 1 day
-
raised-by:verifier
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
medici-finance/assay#5039 ·
Maintainers usually reply within 1 day
-
metax CheckHealth reads Status.Capacity, so unhealthy Metax-GPU nodes are never cleaned upPossibly taken @barbierajput378-pixel claimed this today. Openkind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Project-HAMi/HAMi#3343 · 1 comment ·
Maintainers usually reply within 1 day