Bounty Triage — Report #487
Bounty Triageacme · production
Priya SharmaPS
Queue · Report

SSRF via webhook URL validator allows internal-network calls

#487 · BB-2026-0487 Critical 9.4 Triaging
New · Apr 18
Triaging · Apr 19
Validated
Accepted
Paid
Disclosed
Asset app.example.com Reported by @lyra-h Apr 18 · 4 days ago Owner Priya Sharma

Summary

The webhook configuration form fetches the supplied URL server-side to verify it returns a 2xx. The URL validator only checks the response status, not the resolved IP. By submitting a hostname that resolves to a private RFC1918 address (or to the cloud metadata service), an authenticated user with the Owner role can cause the validator worker to make a request to internal infrastructure and surface the response body in the resulting error toast.

Reproduction steps

1. Sign in as an Owner of any workspace. 2. Open Settings → Integrations → Webhooks → New. 3. Enter URL: http://169.254.169.254/latest/meta-data/iam/security-credentials/ 4. Submit the form. The validator worker performs the GET. 5. The "validation failed" toast surfaces the body of the response, exposing IAM role names. Repeating with the role path returns keys.

Impact

Server-side request forgery against internal AWS metadata. Any Owner-tier user (free workspace included) can read short-lived IAM credentials for the webhook-validator worker role. The role currently has read access to the S3 bucket holding webhook delivery logs, which contain customer event payloads in plain text. Rotating the role and restricting egress will not fully mitigate without input validation.

Attachments (2)

poc-ssrf.mp4 · 2.4 MB scanned · clean
validator-response.txt · 6 KB scanned · clean
PS
Priya SharmaApr 19, 10:14
Reproduced on staging. Confirmed metadata access. Routing to platform team for short-term egress rule; payout proposal coming.
MR
Marc RiveraApr 19, 11:02
Validator worker role rotated. Egress allowlist deployed in staging; production change at 18:00 UTC under CHG-2031.
L
@lyra-hApr 19, 13:30 · researcher-visible
Confirmed I cannot reproduce on staging after your patch — thanks for the quick turnaround. Happy to wait for production.
Visibility Internal only

Researcher

L
@lyra-h
17 reports validated · $14,300 earned · top 5
First response
2h 14m
Avg severity
High
Disputes
0

CVSS 4.0 vector

Attack vectorNetwork
Attack complexityLow
Privileges req.None
User interactionNone
ConfidentialityHigh
IntegrityHigh
9.4
Critical
AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:N

Payout pipeline

Suggested · $8,000
Awaiting owner approval
Approved
Paid · reference

Audit log · last 4

Apr 19, 11:02
Marc rotated role webhook-validator-worker
Apr 19, 10:14
Priya moved New → Triaging
Apr 19, 10:13
Priya assigned self
Apr 18, 21:40
Researcher submitted report