Vulnerability in fast-uri (CVE-2026-86818)
Summary
Vulnerability in fast-uri (CVE-2026-86818). Risk of unauthorized operations or information disclosure. Exploitable via mailto. Mitigation: upgrade to 4.1.5 or later.
Original description
The description as published by the source.
Impact
fast-uri's mailto scheme parser compares each query field name to the reserved names (to, subject, body) while the name is still percent-encoded, and only percent-decodes it when storing it as a generic header. On serialize, the decoded name is re-emitted, so a field name such as %74o (percent-encoded to) is not recognized as a recipient at parse time (parse().to shows only the legitimate recipient) but materializes as a literal to= field after serialize(), and reparsing then treats it as a recipient. The same technique smuggles subject and body through %73ubject and %62ody.
An application that parses an untrusted mailto URI, makes a display, allowlist, or logging decision on parse().to, then re-serializes the result and passes the serialized string to a mail client or an outbound send path can gain an attacker-chosen recipient, subject, or body that was not visible when the recipient list was checked. A scanner inspecting the raw input for an extra to= sees nothing, because the injected field appears only after fast-uri serializes.
Patches
Upgrade to fast-uri 4.1.5.
Workarounds
Percent-decode and compare mailto field names case-insensitively before trusting parse().to, or re-check the recipient list on the serialized output rather than only on the initial parse, until upgrading.
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-86818 has been found in fast-uri.
Attackers can target a specific entry point like mailto over the network to misuse the product.
Risk of unauthorized operations or information disclosure. CVSS score: 4.8/10.
What to do: upgrade fast-uri to 4.1.5 or later.
If unsure, ask your IT team or search "fast-uri CVE-2026-86818" on the vendor's site.
CVE-2026-86818 (fast-uri) — CWE-172 / CVSS v3 4.8
Attack vector: remote (network-reachable) / unauthenticated / no user interaction
Attack surface: mailto / subject / body
Patched: 4.1.5 — apply immediately
Workaround: Percent-decode and compare mailto field names case-insensitively before trusting parse().to, or re-check the recipient list on the serialized output rather than only on the initial parse, until upgrading.
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-172) exists in fast-uri. Attackers reach the vulnerable code path via mailto without authentication.
Check the vendor advisory for the affected versions of fast-uri. Attack surface: mailto / subject / body.
Severity: Medium (CVSS 4.8/10). Risk of unauthorized operations or information disclosure.
Update to 4.1.5.
Workaround: Percent-decode and compare mailto field names case-insensitively before trusting parse().to, or re-check the recipient list on the serialized output rather than only on the initial parse, until upgrading.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'fast-uri' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'fast-uri' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
fast-uriを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply temporary workaround mitigate
Percent-decode and compare mailto field names case-insensitively before trusting `parse().to`, or re-check the recipient list on the serialized output rather than only on the initial parse, until upgrading.パッチが適用されるまでの応急処置として、Percent-decode and compare mailto field names case-insensitively before trusting
parse().to, or re-check the recipient list on the serialized output rather than only on the initial parse, until upgrading. を実施。回避策の副作用 (機能低下) を確認した上で。 -
3Apply patch patch
Upgrade fast-uri to 4.1.5ステージング環境で 4.1.5 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
4Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2026-86818 node-ajv
References
- web cna.openjsf.org
- web github.com
- web nvd.nist.gov
- web github.com
- web github.com
- web github.com