CVE-2026-84368 json
joi: Prototype pollution via a `__proto__` language key in custom messages
published 2026-09-01 2 mo ago modified 2026-11-05 4 d ago also CVE-2026-122131 , GHSA-6w3j-5fw6-r9vr , EUVD-2026-69649
- cvss
- 3.7
- 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 33%
- public exploits
- 0
- none known
Summary
joi is a schema description language and data validator for JavaScript. From 16.0.0 until 17.13.6 and 18.2.5, the @hapi/joi package through 17.1.1 and the successor joi package contain prototype pollution in lib/messages.js, where exports.compile() and exports.merge() reuse inherited objects for attacker-controlled language keys supplied through messages(), message(), prefs({ messages }), Joi.extend({ messages }), or rule({ message }). A language key named __proto__ writes properties onto Object.prototype, and constructor writes to the Object function's static properties. A consuming application that gates on the presence of an inherited property can take the wrong branch for every inspected object. The flaw is not reachable from data that joi validates and requires an application to feed untrusted input directly into schema-construction configuration. This issue is fixed in joi versions 17.13.6 and 18.2.5; no fixed @hapi/joi version is available.
Patch / fix
- npm joi 17.13.6, 18.2.5
- github.com/hapijs/joi@8d0b808 commit
- github.com/hapijs/joi@90d0757 commit
- github.com/hapijs/joi#3138 pull request
- github.com/hapijs/joi#3139 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-84368 updated cvss 3.7
joi: @hapi/joi: joi: Prototype pollution via untrusted input in schema configuration
-
Red Hat Gatekeeper 3 gatekeeper/gatekeeper-rhel9 Red Hat Migration Toolkit for Containers rhmtc/openshift-migration-ui-rhel8 Red Hat Build of Podman Desktop rh-podman-desktop.git Red Hat Data Grid 8 redhat-datagrid-maven-repository.zip Red Hat Enterprise Linux 8 pcs, grafana, pcs-snmp, grafana-pcp, grafana-loki, grafana-mssql, +12 more Red Hat Enterprise Linux 9 grafana, grafana-selinux, grafana 12.4.3-2.el10affected: workaround, no fix available “Fix deferred”
+1 more productsfewer
Red Hat Enterprise Linux 10 grafana 12.4.3-2.el10 -
Red Hat Fuse 7 joi 15.1.1affected: workaround, no fix planned “Out of support scope”
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-dashboard-rhel9, rhoai/odh-mod-arch-maas-rhel9, rhoai/odh-mod-arch-automl-rhel9, rhoai/odh-mod-arch-gen-ai-rhel9, rhoai/odh-mod-arch-mlflow-rhel9, rhoai/odh-mod-arch-autorag-rhel9, +2 more Red Hat OpenShift Container Platform 4 openshift4/ose-agent-installer-ui-rhel9 Red Hat OpenShift Container Platform 5 openshift5/ose-agent-installer-ui-rhel9 Red Hat OpenShift Dev Spaces devspaces/dashboard-rhel9affected: workaround, no fix available “Fix deferred”
-
Red Hat Hardened Images grafana12.4 12.4.9-0.4.hum1, grafana13.1 13.1.3-0.3.hum1, grafana13.2 13.2.0-0.1.2.hum1not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.39% chance of exploitation in the next 30 days, higher than 33% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N |
| GitHub | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | joi | >=17.2.0, <17.13.6 >=18.0.0, <18.2.5 |
17.13.6 18.2.5 |
| npm | @hapi/joi | >=16.0.0, <=17.1.1 |
no fix listed |
Affected products
- hapijs joi
Classification
- Weakness
-
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes
References
-
github.com
/hapijs/joi/pull/3138
web
-
github.com
/hapijs/joi/pull/3139
web
-
github.com
/hapijs/joi/commit/8d0b808f3e874d28f9078f61b7742290989afb36
web
-
github.com
/hapijs/joi/commit/90d07571923c90e3432a328fc041d1cda03d30fa
web
-
github.com
/hapijs/joi/security/advisories/GHSA-6w3j-5fw6-r9vr
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-84368
advisory
-
github.com
/hapijs/joi
package
Sources
- CVE List CVE-2026-84368
- GitHub Advisory GHSA-6w3j-5fw6-r9vr
- NVD CVE-2026-84368
Fencer Vulns 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.