CVE-2026-8769 json
vercel ai provider-utils response-handler.ts createJsonErrorResponseHandler resource consumption
published 2026-05-17 5 mo ago modified 2026-10-14 25 d ago also GHSA-866g-f22w-33x8 , EUVD-2026-30712
- cvss
- 4.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 46%
- public exploits
- 0
- none known
Summary
A vulnerability was determined in vercel ai up to 3.0.97. The impacted element is the function createJsonResponseHandler/createJsonErrorResponseHandler of the file packages/provider-utils/src/response-handler.ts of the component provider-utils. This manipulation causes resource consumption. The attack may be initiated remotely. The exploit has been publicly disclosed and may be utilized. The vendor was contacted early about this disclosure but did not respond in any way.
Patch / fix
- npm @ai-sdk/provider-utils 3.0.28, 4.0.33, 5.0.1
- github.com/vercel/ai@6a436e3 commit
- github.com/vercel/ai@b30e43a commit
- github.com/vercel/ai@b85c4fb commit
- github.com/vercel/ai#16374 pull request
- github.com/vercel/ai/releases/tag/@ai-sdk/provider-utils@3.0.28 release
- github.com/vercel/ai/releases/tag/@ai-sdk/provider-utils@4.0.33 release
- github.com/vercel/ai/releases/tag/@ai-sdk/provider-utils@5.0.1 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.56% chance of exploitation in the next 30 days, higher than 46% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- gist.github.com https://gist.github.com/YLChen-007/fb1096bc8428bed9a428f764d9d103bb referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.3 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P |
| CNA | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L/E:P/RL:X/RC:R |
| CNA | 3.0 | 4.3 | CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L/E:P/RL:X/RC:R |
| CNA | 2.0 | 4.0 | AV:N/AC:L/Au:S/C:N/I:N/A:P/E:POC/RL:ND/RC:UR |
| CNA | 4.0 | 2.1 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CNA | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L |
| NVD | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| CNA | 2.0 | 4.0 | AV:N/AC:L/Au:S/C:N/I:N/A:P |
| GitHub | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @ai-sdk/provider-utils | <3.0.28 >=4.0.0-beta.10, <4.0.33 >=5.0.0-beta.0, <5.0.1 |
3.0.28 4.0.33 5.0.1 |
Affected products
- vercel ai
Classification
References
-
github.com
/vercel/ai/pull/16374
web
-
github.com
/vercel/ai/commit/6a436e31d247d678ddaedfc6f61e73ac0595e4b4
web
-
github.com
/vercel/ai/commit/b30e43ac3fae2432a40b4f4f27f844f3d78b119e
web
-
github.com
/vercel/ai/commit/b85c4fbc603b8173cf50a9790823397aada908a9
web
-
gist.github.com
/YLChen-007/fb1096bc8428bed9a428f764d9d103bb
exploit, web, third-party-advisory
-
vuldb.com
/vuln/364394
vdb-entry, technical-description, web, third-party-advisory
-
vuldb.com
/vuln/364394/cti
signature, permissions-required, web, vdb-entry
-
vuldb.com
/submit/811406
third-party-advisory, web, vdb-entry
-
nvd.nist.gov
/vuln/detail/CVE-2026-8769
advisory
-
github.com
/vercel/ai
package
-
github.com
/vercel/ai/blob/main/packages/provider-utils/CHANGELOG.md#501
web
-
github.com
/vercel/ai/releases/tag/@ai-sdk/provider-utils@3.0.28
web
-
github.com
/vercel/ai/releases/tag/@ai-sdk/provider-utils@4.0.33
web
-
github.com
/vercel/ai/releases/tag/@ai-sdk/provider-utils@5.0.1
web
Sources
- CVE List CVE-2026-8769
- GitHub Advisory GHSA-866g-f22w-33x8
- NVD CVE-2026-8769
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.