CVE-2026-84367 json
joi: object().rename() with a template target can set the validated object's prototype
published 2026-09-01 2 mo ago modified 2026-09-09 1 mo ago also GHSA-gg4h-3hg2-grpc , EUVD-2026-69648
- 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.5 and 18.2.4, joi's lib/types/keys.js internals.rename() implementation used by object().rename() permits a schema that renames keys with a regular-expression source and a Joi.expression() or Joi.x() target that interpolates the pattern's own match data, combined with { multiple: true }, to derive a target from an attacker-controlled input key. An attacker can send x-__proto__ with an object value, causing the target to render as __proto__ and set the prototype of the object returned by validate() instead of creating an own key. The global Object.prototype is not modified, so the effect is confined to the object returned by that validation call. Static-string targets and schemas using the default { multiple: false } are not affected. This issue is fixed in versions 17.13.5 and 18.2.4.
Patch / fix
- npm joi 17.13.5, 18.2.4
- github.com/hapijs/joi@162f367 commit
- github.com/hapijs/joi@172ecec commit
- github.com/hapijs/joi#3134 pull request
- github.com/hapijs/joi#3135 pull request
- github.com/hapijs/joi/releases/tag/v17.13.5 release
- github.com/hapijs/joi/releases/tag/v18.2.4 release
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-84367 updated cvss 3.7
joi: joi: Prototype pollution via dynamic key renaming
-
Red Hat Gatekeeper 3 gatekeeper/gatekeeper-rhel9 Red Hat Migration Toolkit for Containers rhmtc/openshift-migration-ui-rhel8 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: no fix available “Fix deferred”
-
Red Hat Build of Podman Desktop rh-podman-desktop.gitunder investigation
-
Red Hat Build of Podman Desktop rh-podman-desktop 3c6fc75a2a6cf5bb9b8a667fddcbbf428132badc Red Hat Data Grid 8 redhat-datagrid-maven-repository.zip 8.6.1.CR1 Red Hat Enterprise Linux 8 grafana, grafana-pcp, grafana-loki, grafana-mssql, grafana-mysql, grafana-selinux, +10 more Red Hat Enterprise Linux 9 grafana, grafana-selinux, grafana 12.4.3-2.el10 Red Hat Enterprise Linux 10 grafana 12.4.3-2.el10 Red Hat Hardened Images grafana13.1 13.1.6-0.3.hum1, grafana13.2 13.2.1-0.7.hum1, grafana12.4 12.4.10-0.8.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 | >=16.0.0, <17.13.5 >=18.0.0, <18.2.4 |
17.13.5 18.2.4 |
Affected products
- hapijs joi
Classification
- Weakness
-
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes
References
-
github.com
/hapijs/joi/pull/3134
web
-
github.com
/hapijs/joi/pull/3135
web
-
github.com
/hapijs/joi/commit/162f367aa178d2e1ebec8dc1164e5fe16536ddf6
web
-
github.com
/hapijs/joi/commit/172ececa192feda532b743d77bc9d3e523d19b01
web
-
github.com
/hapijs/joi/security/advisories/GHSA-gg4h-3hg2-grpc
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-84367
advisory
-
github.com
/hapijs/joi
package
-
github.com
/hapijs/joi/releases/tag/v17.13.5
web
-
github.com
/hapijs/joi/releases/tag/v18.2.4
web
Sources
- CVE List CVE-2026-84367
- GitHub Advisory GHSA-gg4h-3hg2-grpc
- NVD CVE-2026-84367
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.