/goal /ultracode-workflows [RBAC-5] sign the Forgejo webhook bus (HMAC) — close event forgery #32

Closed
opened 2026-07-01 02:03:46 +00:00 by plat · 0 comments
Owner

Track/Wave: RBAC-5 · Wave G5 · Size S
Repos: agents, mitosis
Depends on: none

Why

POST /hook verifies no signature; anything reaching the port can forge agent-work events and trigger builds/runs. Precondition for trusting webhooks as the platform's growth-loop event bus.

Scope

Set a shared secret on the admin system hook; verify the HMAC in the /hook receiver (dispatcher.ts ~2704) before dispatch; seal the secret via fork_regen_secrets so it regenerates per-daughter.

Acceptance

A POST to /hook with missing/incorrect signature is rejected (4xx, no dispatch); a genuine Forgejo-signed event dispatches — validated by replaying a captured payload with a tampered signature.

Notes

Seam A (fork_regen_secrets) — late in the germination-scripts chain.


Part of the First Client Deploy → Governance roadmap. The owning agent may recurse into its own subagent team (ultracode workflow) if the task warrants. Honor the seam-serialization: land on a shared seam by rebase, and don't start a seam position until the prior one has merged.

**Track/Wave:** `RBAC-5` · Wave **G5** · Size **S** **Repos:** `agents`, `mitosis` **Depends on:** none ## Why POST /hook verifies no signature; anything reaching the port can forge agent-work events and trigger builds/runs. Precondition for trusting webhooks as the platform's growth-loop event bus. ## Scope Set a shared secret on the admin system hook; verify the HMAC in the /hook receiver (dispatcher.ts ~2704) before dispatch; seal the secret via fork_regen_secrets so it regenerates per-daughter. ## Acceptance A POST to /hook with missing/incorrect signature is rejected (4xx, no dispatch); a genuine Forgejo-signed event dispatches — validated by replaying a captured payload with a tampered signature. ## Notes **Seam A (fork_regen_secrets) — late in the germination-scripts chain.** --- *Part of the **First Client Deploy → Governance** roadmap. The owning agent may recurse into its own subagent team (ultracode workflow) if the task warrants. Honor the seam-serialization: land on a shared seam by rebase, and don't start a seam position until the prior one has merged.*
plat closed this issue 2026-07-01 21:22:34 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-platform/mitosis#32
No description provided.