GHSA-j5qp-p44g-2m49MediumDisclosed before NVD
@asymmetric-effort/specifyjs: No redirect target validation in secureFetch
📋 Description
Finding
Location: core/src/shared/secure-fetch.ts
assertSecureUrl validated only the initial request URL. The fetch() API follows redirects by default (up to 20 hops). A request to a valid https:// URL could redirect to http://internal-service/ or other unvalidated destinations.
Status
Fixed in v0.2.136 — secureFetch now defaults to redirect: 'error' which rejects any redirect. Callers can override with { redirect: 'follow' } if they trust the target.
🎯 Affected products1
- npm/@asymmetric-effort/specifyjs:< 0.2.136