hapi-joi

Ecosystem: npm

Downloads:

Vulnerabilities from the last (months)
  • 0CriticalAffects 0 versions
  • 1HighAffects 1 version
  • 0MediumAffects 0 versions
  • 0ModerateAffects 0 versions
  • 1LowAffects 1 version
Severity distribution (all time)
2vulnerabilities
  • Critical0 (0.0%)
  • High1 (50.0%)
  • Medium0 (0.0%)
  • Moderate0 (0.0%)
  • Low1 (50.0%)

Monthly breakdown

  • Critical
  • High
  • Medium
  • Moderate
  • Low
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 0
    • Medium: 0
    • Moderate: 0
    • Low: 1

Vulnerabilities (2)

Known vulnerabilities affecting hapi-joi, based on data from OSV.

Vulnerabilities affecting hapi-joi
IDSeveritySummaryAffected versionsPublishedSource
GHSA-4528-x5fx-h6hgHighjoi: quadratic-time split in `string().email({ multiple: true })` allows denial of service### Summary `Joi.string().email({ multiple: true })` takes quadratic time to split a value that contains a long run of whitespace. One request with 100 KB of spaces blocks the Node.js event loop for several seconds, which causes a denial of service. ### Details When the `multiple` option is set, the `email` rule splits the value into addresses with a regular expression that removes whitespace on each side of the separator: ```js const regex = new RegExp(`\\s*[${options.separator ? escapeRegex(options.separator) : ','}]\\s*`); // ... const emails = options.multiple ? value.split(regex) : [v
  • >= 16.0.0, <= 17.1.1
GitHub (opens in a new tab)
GHSA-6w3j-5fw6-r9vrLowjoi: Prototype pollution via a `__proto__` language key in custom messages### Impact An application that passes attacker-controlled data into joi's custom message configuration (`messages()`, `message()`, `prefs({ messages })`, `Joi.extend({ messages })` or `rule({ message })`) lets the attacker write properties onto `Object.prototype`, where every object in the process then inherits them. A key named `__proto__` was treated as a language name, and the code reused the object it found at that key, which resolves to the prototype rather than to a new own property; a key named `constructor` did the same to the `Object` function's statics. A consuming application that g
  • >= 16.0.0, <= 17.1.1
GitHub (opens in a new tab)
  • GHSA-4528-x5fx-h6hgHigh
    joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service
    • >= 16.0.0, <= 17.1.1

    ### Summary `Joi.string().email({ multiple: true })` takes quadratic time to split a value that contains a long run of whitespace. One request with 100 KB of spaces blocks the Node.js event loop for several seconds, which causes a denial of service. ### Details When the `multiple` option is set, the `email` rule splits the value into addresses with a regular expression that removes whitespace on each side of the separator: ```js const regex = new RegExp(`\\s*[${options.separator ? escapeRegex(options.separator) : ','}]\\s*`); // ... const emails = options.multiple ? value.split(regex) : [v

    CVE: CVE-2026-118772

  • GHSA-6w3j-5fw6-r9vrLow
    joi: Prototype pollution via a `__proto__` language key in custom messages
    • >= 16.0.0, <= 17.1.1

    ### Impact An application that passes attacker-controlled data into joi's custom message configuration (`messages()`, `message()`, `prefs({ messages })`, `Joi.extend({ messages })` or `rule({ message })`) lets the attacker write properties onto `Object.prototype`, where every object in the process then inherits them. A key named `__proto__` was treated as a language name, and the code reused the object it found at that key, which resolves to the prototype rather than to a new own property; a key named `constructor` did the same to the `Object` function's statics. A consuming application that g

    CVE: CVE-2026-122131

Showing 1-2 of 2 vulnerabilities