CVE-2026-59965 json
@jhb.software/payload-alt-text-plugin: Alt Text Endpoint Authorization Bypass via Payload Local API `overrideAccess` Omission
published 2mo ago modified last mo. also GHSA-4qpv-39hg-f7fx , EUVD-2026-78819
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 32%
- public exploits
- 0
- none known
Summary
Payload Plugins is a collection of plugins designed to enhance Payload CMS. In 0.7.0, @jhb.software/payload-alt-text-plugin exposes POST /api/alt-text-plugin/generate and POST /api/alt-text-plugin/bulk with a default guard that accepts any authenticated user, while alt-text/src/endpoints/generateAltText.ts and alt-text/src/endpoints/bulkGenerateAltTexts.ts call req.payload.findByID and req.payload.update without overrideAccess: false. Payload therefore defaults overrideAccess to true and skips the target collection's read and update access functions. An authenticated low-privilege user can supply id, collection, locale, and update values to read arbitrary protected upload documents and overwrite their alt and keywords fields, even when the collection permits those operations only to administrators. A control Local API call with overrideAccess: false is denied, confirming that the plugin endpoint bypasses otherwise effective collection rules. This vulnerability is fixed in 0.8.0.
Patch / fix
- npm @jhb.software/payload-alt-text-plugin 0.8.0
Is CVE-2026-59965 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/jhb-software/payload-plugins/security/advisories/GHSA-4qpv-39hg-f7fx referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @jhb.software/payload-alt-text-plugin | <0.8.0 |
0.8.0 |
Affected products
- jhb-software payload-plugins
- @jhb.software payload-alt-text-plugin
Classification
- Weakness
-
- CWE-863 Incorrect Authorization
References
-
github.com
/jhb-software/payload-plugins/pull/159
web
-
github.com
/jhb-software/payload-plugins/commit/e39634868ce13a414e2981e219befc58101654d3
web
-
github.com
/jhb-software/payload-plugins/security/advisories/GHSA-4qpv-39hg-f7fx
exploit, web
-
github.com
/jhb-software/payload-plugins/releases/tag/alt-text@0.8.0
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-59965
advisory
-
github.com
/jhb-software/payload-plugins
package
Sources
- CVE List CVE-2026-59965
- GitHub Advisory GHSA-4qpv-39hg-f7fx
- NVD CVE-2026-59965
Fencer Intel 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.