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
No EPSS score from FIRST.org yet. New CVEs usually get one within a few days; no score means no signal yet, not low risk. How EPSS works.
Affected products
Weakness classification (CWE)
References
- github.com/hapijs/joi (product)
- github.com/hapijs/joi/blob/v18.3.0/lib/messages.js (technical-description)
- Patch Commit (patch)
- github.com/hapijs/joi/commit/dae9467cec27e787bfdea8b276595177d52d28ec (patch)
- github.com/hapijs/joi/pull/3164 (issue-tracking, patch)
- GitHub Security Advisory (GHSA-6w3j-5fw6-r9vr) (related, vendor-advisory)
- VulnCheck Advisory: Joi 17.13.6 before 17.13.9 and 18.2.5 before 18.3.1 Prototype Replacement via __proto__ Language Key (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.