GHSA-j5qp-p44g-2m49MediumDisclosed before NVD

@asymmetric-effort/specifyjs: No redirect target validation in secureFetch

Published
July 2, 2026
Last Modified
July 2, 2026

📋 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.136secureFetch 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

🔗 References (3)