GHSA-cfhh-xgwq-5r67 · Severity: medium · Ecosystem: npm — Sudden swap of user auth tokens in Volto
Volto is a ReactJS-based frontend for the Plone Content Management System. Between versions 14.0.0-alpha.5 and 15.0.0-alpha.0, a user could have their authentication cookie replaced with an authentication cookie from another user, effectively giving them control of the other user's account and privileges. This occurs when using an outdated version of the `react-cookie` library and a server is under high load. A proof of concept does not currently exist, but it is possible for this issue to occur in the wild. The patch and fix is present in Volto 15.0.0-alpha.0. As a workaround, one may manually upgrade the `react-cookie` package to 4.1.1 and then override all Volto components that use this library.
Conclusion & alert: CVE-2022-24740 is rated Low Risk (35.1/100): CVSS Medium severity, with low exploitation likelihood (EPSS 0.57%). Mandatory action: Monitor for updates and reassess as exploit intelligence or EPSS changes.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-06-15 | 0.26% | 0.57% | +0.31% |
| 2 | 2025-09-07 | 0.24% | 0.26% | +0.01% |
| 3 | 2025-04-13 | — | 0.24% | — |
Full EPSS history (9 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 5.0 | 3.1 | MEDIUM |
|
1.6 | 3.4 | [email protected] |
| 7.5 | 3.1 | HIGH |
|
1.6 | 5.9 | [email protected] |
| 6.0 | 2.0 | MEDIUM |
|
6.8 | 6.4 | [email protected] |
GHSA-cfhh-xgwq-5r67 · Severity: medium · Ecosystem: npm — Sudden swap of user auth tokens in Volto
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| plone | volto | >= 14.1.0, <= 14.10.0 | cpe:2.3:a:plone:volto:*:*:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:-:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha10:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha11:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha12:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha13:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha14:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha15:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha16:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha17:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha18:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha19:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha20:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha21:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha22:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha23:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha24:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha25:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha26:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha27:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha28:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha29:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha30:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha31:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha32:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha33:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha34:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha35:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha36:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha37:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha38:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha39:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha40:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha41:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha42:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha43:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha6:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha7:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha8:*:*:*:node.js:*:* |
| plone | volto | 14.0.0 | cpe:2.3:a:plone:volto:14.0.0:alpha9:*:*:*:node.js:*:* |
| plone | volto | 15.0.0 | cpe:2.3:a:plone:volto:15.0.0:alpha0:*:*:*:node.js:*:* |
| URL | Tags |
|---|---|
| https://github.com/plone/volto/pull/3051 | Patch Third Party Advisory |
| https://github.com/plone/volto/security/advisories/GHSA-cfhh-xgwq-5r67 | Patch Third Party Advisory |