Skip to main content
← Back to list
01Issue
BugShippedSwamp CLI
Assigneesstack72

Relationships

#726 Slack webhook pre-body gate only checks signature header, not timestamp

Opened by keeb · 6/21/2026· Shipped 6/21/2026

In src/serve/webhook.ts (~line 337), the pre-body presence check !req.headers.get(verifier.signatureHeader) only verifies the signature header (e.g. x-slack-signature), not the timestamp header (x-slack-request-timestamp).

A request that carries the signature header but omits the timestamp header passes the gate, gets its full body read, and is then correctly rejected by verify() (still returns 401).

Impact: Functionally correct — such requests are still rejected — but it doesn't fully achieve the stated goal of avoiding body/resource consumption for requests guaranteed to fail. The 10MB body limit already mitigates abuse.

Severity: Very minor. Consider having the pre-body gate consult all headers a scheme requires (the verifier could expose its required headers) rather than just the signature header.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 4 MOREREVIEW+ 2 MOREPR_LINKED+ 1 MORENOTIFICATION_SKIPPED

Shipped

6/21/2026, 10:16:40 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/21/2026, 9:13:50 PM

Sign in to post a ripple.