Skip to content

[Security][High] Bridge webhook HMAC verification skipped when encryption key is nil — POST /internal/webhooks/bridge/{sandboxID} #32

@bahdcoder

Description

@bahdcoder

Vulnerability

In the Bridge webhook handler, HMAC signature verification is gated on a nil check of the encryption key field. When the encryption key is nil (due to misconfiguration, feature flag disabled, or specific deployment modes), the entire HMAC verification block is skipped, and the webhook payload is processed as if it were authentic.

Impact

  • An attacker can POST arbitrary webhook events to /internal/webhooks/bridge/{sandboxID} and they will be processed as legitimate Bridge events.
  • Fake events can inject conversations, trigger conversation naming tasks, update conversation statuses (including marking conversations as ended or errored), and publish events to the SSE event bus.
  • The sandbox last_active_at timestamp is updated, potentially skewing monitoring and billing.
  • Any tenant's sandbox is affected — the sandboxID is a URL path parameter with no additional auth when HMAC is bypassed.

Endpoint

POST /internal/webhooks/bridge/{sandboxID} — the HMAC verification conditional allows the entire verification to be skipped.

Recommendation

Reject webhook requests with an explicit error when the encryption key is not configured, rather than silently skipping verification. A nil encryption key should be treated as a configuration error, not as an opt-out of security.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authAuthentication vulnerabilitysecuritySecurity vulnerability or concernseverity:highHigh severity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions