{"schema":"threatline.record/2","record":{"id":"CVE-2026-114060","aliases":["GHSA-pfhg-q3qv-9q6r"],"summary":"SvelteKit: URL redirection to untrusted site via enhanced form submission","details":"### Impact\nApplications using enhanced form actions (`use:enhance`) on routes that accept paths beginning with `//`, such as catch-all routes, may be vulnerable to an open redirect.\n\n### Patches\nA fix has been prepared for `@sveltejs/kit` 3.0.0. Users should upgrade to 3.0.0 or later.\n\nThe fix preserves leading double slashes in action paths without generating protocol-relative URLs, restricts non-redirect action navigation to the current origin, and includes the origin when comparing action locations with the current page.\n\n### Workarounds\nReject requests whose parsed URL pathname begins with `//` before route resolution, for example in a reverse proxy or a SvelteKit `handle` hook.\n\nAlternatively, disable navigation for non-redirect enhanced form results by supplying a custom submission callback:\n\n```svelte\n<form method=\"POST\" use:enhance={() => ({ update }) => update({ navigate: false })}>\n  <!-- form fields -->\n</form>\n```\n\nThis applies non-redirect results to the current page instead of navigating to the action location.","categories":["Libraries & packages"],"product":"@sveltejs/kit","vendor":"sveltejs","ecosystem":"npm","affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-pfhg-q3qv-9q6r","source_modified_at":"2026-10-23T20:58:25Z","fetched_at":"2026-10-23T21:10:45.942435Z","package":{"ecosystem":"npm","name":"@sveltejs/kit"},"range":"< 3.0.0"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-114060","source_modified_at":"2026-10-21T15:50:38.726Z","fetched_at":"2026-10-23T18:45:31.882637Z","product":"kit","vendor":"sveltejs","versions":[{"lessThan":"3.0.0","status":"affected","version":"0","versionType":"semver"},{"status":"unaffected","version":"3.0.0","versionType":"semver"}],"defaultStatus":"unaffected"}],"fixed_versions":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-pfhg-q3qv-9q6r","source_modified_at":"2026-10-23T20:58:25Z","fetched_at":"2026-10-23T21:10:45.942435Z","package":{"ecosystem":"npm","name":"@sveltejs/kit"},"version":"3.0.0"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-114060","source_modified_at":"2026-10-21T15:50:38.726Z","fetched_at":"2026-10-23T18:45:31.882637Z","package":{"name":"kit","ecosystem":null},"version":"3.0.0","basis":"first unaffected version stated in the CVE record"}],"cvss":2.1,"severity":"Low","kev":{"listed":false},"epss":{"probability":0.00165,"percentile":0.05403,"score_date":"2026-10-23"},"published_at":"2026-10-21T00:36:34.741Z","modified_at":"2026-10-23T20:58:25Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/advisories/GHSA-pfhg-q3qv-9q6r","fetched_at":"2026-10-23T21:10:45.942435Z","source_modified_at":"2026-10-23T20:58:25Z"},{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-114060","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-10-21T15:50:38.726Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114060","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["GitHub Advisory Database","CVE List","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/sveltejs/kit/security/advisories/GHSA-pfhg-q3qv-9q6r","tags":["vendor-advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114060","source":"GitHub Advisory Database"},{"url":"https://github.com/sveltejs/kit/commit/91aae3547c6cd2935d79c09a53e27c740100000a","source":"GitHub Advisory Database"},{"url":"https://github.com/sveltejs/kit/releases/tag/@sveltejs/kit@3.0.0","source":"GitHub Advisory Database"},{"source":"CVE List","url":"https://www.vulncheck.com/advisories/sveltekit-before-3.0.0-open-redirect-via-enhanced-form-actions","tags":["third-party-advisory"]},{"url":"https://github.com/advisories/GHSA-pfhg-q3qv-9q6r","source":"GitHub Advisory Database"}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","ssvc":{"exploitation":"none","automatable":"no","technical_impact":"partial","assessed_at":"2026-10-21T14:24:55.358151Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-23T20:58:25Z","content_hash":"3eea8f6ed26ea463f875ef7667d993fd10562b926731f8635de63b9e8c880269"}}
