VDB
KO
MEDIUM 5.3

GHSA-q7cg-457f-vx79

joi has an uncaught RangeError on deeply nested input through recursive `link()` schemas

Details

### Impact Denial of service via untrapped exception in services validating user-supplied JSON / object input with recursive link schemas.

The blast radius depends on how the application invokes joi: - Highest impact: `validate()` called without `try/catch` in a request handler would cause an unhandled exception, potentially crashing the process. - Lower impact: `validateAsync()` or `validate()` inside a `try/catch`, the validation fails, but the error type is `RangeError` rather than a structured `ValidationError`, complicating error handling.

### Patches Upgrade to version >= 18.2.1.

### Workarounds Try/catch the validation to avoid uncaught exceptions.

### Resources - Pull request: hapijs/joi#3113

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / joi
Introduced in: 0 Fixed in: 18.2.1
Fix npm install joi@18.2.1

References