{"id":"CVE-2026-122131","published":"2026-11-04T21:18:08.710","lastModified":"2026-11-04T21:18:08.710","description":"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.","cvssScore":3.7,"cvssSeverity":"LOW","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","cwes":["CWE-1321"],"vendors":[],"products":[],"references":[{"url":"https://github.com/hapijs/joi","tags":[]},{"url":"https://github.com/hapijs/joi/blob/v18.3.0/lib/messages.js#L64-L67","tags":[]},{"url":"https://github.com/hapijs/joi/commit/76f5771e1afe527cfda24be0e1a920ffa54888d6","tags":[]},{"url":"https://github.com/hapijs/joi/commit/dae9467cec27e787bfdea8b276595177d52d28ec","tags":[]},{"url":"https://github.com/hapijs/joi/pull/3164","tags":[]},{"url":"https://github.com/hapijs/joi/security/advisories/GHSA-6w3j-5fw6-r9vr","tags":[]},{"url":"https://www.vulncheck.com/advisories/joi-17.13.6-before-17.13.9-and-18.2.5-before-18.3.1-prototype-replacement-via-proto-language-key","tags":[]}],"exploitRefs":[{"url":"https://github.com/hapijs/joi","tags":[]},{"url":"https://github.com/hapijs/joi/blob/v18.3.0/lib/messages.js#L64-L67","tags":[]},{"url":"https://github.com/hapijs/joi/commit/76f5771e1afe527cfda24be0e1a920ffa54888d6","tags":[]},{"url":"https://github.com/hapijs/joi/commit/dae9467cec27e787bfdea8b276595177d52d28ec","tags":[]},{"url":"https://github.com/hapijs/joi/pull/3164","tags":[]},{"url":"https://github.com/hapijs/joi/security/advisories/GHSA-6w3j-5fw6-r9vr","tags":[]}],"hasPoc":true,"ai":null}