Description
Applications are affected only if a schema renames keys with a regular-expression source and a Joi.expression() / Joi.x() target that interpolates the pattern’s own match data, combined with { multiple: true }, for example .rename(/^x-(.+)$/, Joi.x('{#1}'), { multiple: true }).
Recommendation
Update the joi package to the latest compatible version. Followings are version details:
Affected version(s): **>= 18.0.0, < 18.2.4 >= 16.0.0, < 17.13.5** Patched version(s): **18.2.4 17.13.5**
References
Could your website be exposed too?
SmartScanner can check your website for joi: object().rename() with a template target can set the validated object's prototype and gives you actionable findings to investigate.
Start a free scanRelated Issues
- protobufjs: Text Format string map parsing can mutate returned map object prototype - CVE-2026-59876
- jodit: Prototype pollution in Jodit via Jodit.modules.Helpers.set() - CVE-2026-55886
- Valibot: record() issue paths can make flatten() throw for inherited Object property names - CVE-2026-59952
- Axios: Nested axios option objects can consume polluted prototype values - CVE-2026-67319


