Prototype Pollution in Hapijs Joi
CVE-2026-122131
Joi 17.13.6 before 17.13.9 and 18.2.5 before 18.3.1 contains a prototype pollution vulnerability in lib/messages.js compile() and merge() that fails to reject a __proto__ language key. Attackers supplying untrusted message configuration via any().messages(), prefs, validate options or Joi.extend can replace the compiled messages prototype, altering or breaking validation error rendering and dependent logic.
Vulnerability class: Prototype Pollution
Published · last modified .
CVSS v3 metric
CVSS v3 base score 3.7 (Low). Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N.
EPSS exploit prediction
EPSS: 0.003 (26.3th percentile), scored .
Very low probability of exploitation in the next 30 days; routine patching cadence is appropriate. 26th percentile — 26.3% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.
The 30-day trend appears once there are two daily scores.
Affected products
Weakness classification (CWE)
References
- github.com/hapijs/joi (product)
- github.com/hapijs/joi/blob/v18.3.0/lib/messages.js (technical-description)
- github.com/hapijs/joi/commit/76f5771e1afe527cfda24be0e1a920ffa54888d6 (patch)
- github.com/hapijs/joi/commit/dae9467cec27e787bfdea8b276595177d52d28ec (patch)
- github.com/hapijs/joi/pull/3164 (issue-tracking, patch)
- github.com/hapijs/joi/security/advisories/GHSA-6w3j-5fw6-r9vr (related, vendor-advisory)
- www.vulncheck.com/advisories/joi-17.13.6-before-17.13.9-and-18.2.5-before-18.3… (third-party-advisory)
Frequently asked questions
- What is CVE-2026-122131?
- CVE-2026-122131 is a low-severity vulnerability in Hapijs Joi, classified under Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution). CVSS score: 3.7/10. Published 2026-11-04.
- How severe is CVE-2026-122131?
- Low severity. CVSS v3 base score is 3.7 out of 10.