Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-84367— joi: object().rename() with a template target can set the validated object's prototype

Quick assessment

Affected
hapijs joi
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

joi 是 JavaScript 中用于模式描述和数据验证的工具。在 16.0.0 到 17.13.4(即 17.13.5 之前)以及 18.2.4 之前的版本中,joi 的 中由 调用的内部方法 存在漏洞。当使用正则表达式作为源(source),且目标(target)为 或 并插值了该正则匹配数据,同时配合 选项时,攻击者可以通过控制输入对象的键名来推导最终的目标键名。 具体而言,攻击者可以发送键名为 且值为对象的数据,使得目标键名渲染为 ,从而设置 返回对象的原型(而非创建自身键)。由于全局 未被修改,该影响仅

CVSS 3.7 · Low
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-84367

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
joi: object().rename() with a template target can set the validated object's prototype
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
CWE-1321
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
hapijs joi >= 16.0.0, < 17.13.5 -

II. Public POCs for CVE-2026-84367

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-84367

登录查看更多情报信息。

Patches & Fixes for CVE-2026-84367 (4)

Vendor Advisories for CVE-2026-84367 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-84367

No comments yet


Leave a comment