CVE-2026-86983: Swift Crypto P-384 VOPRF denial of service via unbounded input length

CVE-2026-86983 · Severity: info · Published 2026-10-28

Swift Crypto's P-384 VOPRF API fails to enforce RFC 9497 input length limits, allowing a remote attacker to crash applications by passing inputs larger than 2^16 bytes. Applications that perform their own input validation or use fixed-size group elements are unaffected. The vulnerability can lead to denial of service in services that process user-supplied VOPRF inputs without proper bounds checking.

Technologies: Apple Swift Crypto. Vendors: Apple.

Quick answers

Is CVE-2026-86983 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-86983 being exploited in the wild.
How severe is CVE-2026-86983?
Informational severity, published 28 October 2026.
Which products and versions are affected?
Apple Swift Crypto 3.10.0 through 5.0.2.
Is there a fix for CVE-2026-86983?
Yes: fixed in 5.0.3. Until then: Reject inputs of 2^16 bytes or more at your trust boundary before calling blind() or evaluate(); alternatively, hash longer inputs to a fixed length before passing them to the API, as specified in RFC 9497 §5.1. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-86983 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-86983?
Check whether you run Apple Swift Crypto at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 5.0.3

Reject inputs of 2^16 bytes or more at your trust boundary before calling blind() or evaluate(); alternatively, hash longer inputs to a fixed length before passing them to the API, as specified in RFC 9497 §5.1.

Technical details

The P-384 VOPRF blind and evaluate APIs accept arbitrary-length input but fail to enforce the RFC 9497 two-byte length prefix limit of 2^16 - 1 bytes. When an oversized input is passed to blind() or evaluate(), the length encoding fails a precondition check, terminating the process. The vulnerability affects P384._VOPRF.PublicKey.blind(), finalize(), and P384._VOPRF.PrivateKey.evaluate() when called with attacker-controlled unbounded input; applications that validate input length beforehand or use evaluate() with fixed-size group elements are not affected.

Affected products

  • Apple Swift Crypto 3.10.0 through 5.0.2

Timeline

  • 2026-10-20: disclosed
  • 2026-10-28: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.