{"history":[{"alert":0,"cve":"CVE-2026-118772","id":23184,"kind":"epss","observed_at":1794500401,"payload":"{\"date\": \"2026-11-12\", \"epss\": 0.00467, \"percentile\": 0.40937}"},{"alert":0,"cve":"CVE-2026-118772","id":20590,"kind":"epss","observed_at":1794327601,"payload":"{\"date\": \"2026-11-10\", \"epss\": 0.00467, \"percentile\": 0.40763}"},{"alert":0,"cve":"CVE-2026-118772","id":18576,"kind":"epss","observed_at":1794241201,"payload":"{\"date\": \"2026-11-09\", \"epss\": 0.00467, \"percentile\": 0.40717}"},{"alert":0,"cve":"CVE-2026-118772","id":16644,"kind":"epss","observed_at":1794154800,"payload":"{\"date\": \"2026-11-08\", \"epss\": 0.00467, \"percentile\": 0.40704}"},{"alert":0,"cve":"CVE-2026-118772","id":14622,"kind":"epss","observed_at":1794068402,"payload":"{\"date\": \"2026-11-07\", \"epss\": 0.00467, \"percentile\": 0.40681}"},{"alert":0,"cve":"CVE-2026-118772","id":12404,"kind":"epss","observed_at":1793982001,"payload":"{\"date\": \"2026-11-06\", \"epss\": 0.00467, \"percentile\": 0.40622}"},{"alert":0,"cve":"CVE-2026-118772","id":10391,"kind":"epss","observed_at":1793938800,"payload":"{\"date\": \"2026-11-05\", \"epss\": 0.00467, \"percentile\": 0.40595}"},{"alert":0,"cve":"CVE-2026-118772","id":7941,"kind":"epss","observed_at":1793809200,"payload":"{\"date\": \"2026-11-04\", \"epss\": 0.00467, \"percentile\": 0.40568}"},{"alert":1,"cve":"CVE-2026-118772","id":6139,"kind":"cna","observed_at":1793787601,"payload":"{\"containers\": {\"adp\": [{\"metrics\": [{\"other\": {\"content\": {\"id\": \"CVE-2026-118772\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"role\": \"CISA Coordinator\", \"timestamp\": \"2026-11-04T01:33:26.811594Z\", \"version\": \"2.0.3\"}, \"type\": \"ssvc\"}}], \"providerMetadata\": {\"dateUpdated\": \"2026-11-04T01:33:51.841Z\", \"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\"}, \"references\": [{\"tags\": [\"exploit\"], \"url\": \"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg\"}], \"title\": \"CISA ADP Vulnrichment\"}], \"cna\": {\"affected\": [{\"product\": \"joi\", \"vendor\": \"hapijs\", \"versions\": [{\"status\": \"affected\", \"version\": \">= 16.0.0, <= 17.1.1\"}, {\"status\": \"affected\", \"version\": \">= 18.0.0, < 18.3.1\"}]}, {\"product\": \"joi\", \"vendor\": \"@hapi\", \"versions\": [{\"status\": \"affected\", \"version\": \">= 16.0.0, <= 17.1.1\"}]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1.\"}], \"metrics\": [{\"cvssV3_1\": {\"attackComplexity\": \"LOW\", \"attackVector\": \"NETWORK\", \"availabilityImpact\": \"HIGH\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"scope\": \"UNCHANGED\", \"userInteraction\": \"NONE\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\", \"version\": \"3.1\"}}], \"problemTypes\": [{\"descriptions\": [{\"cweId\": \"CWE-1333\", \"description\": \"CWE-1333: Inefficient Regular Expression Complexity\", \"lang\": \"en\", \"type\": \"CWE\"}]}], \"providerMetadata\": {\"dateUpdated\": \"2026-10-29T18:13:33.771Z\", \"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\"}, \"references\": [{\"name\": \"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg\", \"tags\": [\"x_refsource_CONFIRM\"], \"url\": \"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg\"}, {\"name\": \"https://github.com/hapijs/joi/pull/3162\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/pull/3162\"}, {\"name\": \"https://github.com/hapijs/joi/pull/3163\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/pull/3163\"}, {\"name\": \"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf\"}, {\"name\": \"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e\"}, {\"name\": \"https://github.com/hapijs/joi/releases/tag/v17.13.9\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/releases/tag/v17.13.9\"}, {\"name\": \"https://github.com/hapijs/joi/releases/tag/v18.3.1\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/releases/tag/v18.3.1\"}], \"source\": {\"advisory\": \"GHSA-4528-x5fx-h6hg\", \"discovery\": \"UNKNOWN\"}, \"title\": \"joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service\"}}, \"cveMetadata\": {\"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"assignerShortName\": \"GitHub_M\", \"cveId\": \"CVE-2026-118772\", \"datePublished\": \"2026-10-29T18:13:33.771Z\", \"dateReserved\": \"2026-10-28T19:20:05.018Z\", \"dateUpdated\": \"2026-11-04T01:33:51.841Z\", \"state\": \"PUBLISHED\"}, \"dataType\": \"CVE_RECORD\", \"dataVersion\": \"5.2\"}"},{"alert":0,"cve":"CVE-2026-118772","id":5720,"kind":"epss","observed_at":1793722800,"payload":"{\"date\": \"2026-11-03\", \"epss\": 0.00467, \"percentile\": 0.40493}"},{"alert":0,"cve":"CVE-2026-118772","id":3809,"kind":"epss","observed_at":1793679601,"payload":"{\"date\": \"2026-11-02\", \"epss\": 0.00467, \"percentile\": 0.40442}"},{"alert":1,"cve":"CVE-2026-118772","id":3686,"kind":"cna","observed_at":1793679601,"payload":"{\"containers\": {\"cna\": {\"affected\": [{\"product\": \"joi\", \"vendor\": \"hapijs\", \"versions\": [{\"status\": \"affected\", \"version\": \">= 16.0.0, <= 17.1.1\"}, {\"status\": \"affected\", \"version\": \">= 18.0.0, < 18.3.1\"}]}, {\"product\": \"joi\", \"vendor\": \"@hapi\", \"versions\": [{\"status\": \"affected\", \"version\": \">= 16.0.0, <= 17.1.1\"}]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1.\"}], \"metrics\": [{\"cvssV3_1\": {\"attackComplexity\": \"LOW\", \"attackVector\": \"NETWORK\", \"availabilityImpact\": \"HIGH\", \"baseScore\": 7.5, \"baseSeverity\": \"HIGH\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"scope\": \"UNCHANGED\", \"userInteraction\": \"NONE\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\", \"version\": \"3.1\"}}], \"problemTypes\": [{\"descriptions\": [{\"cweId\": \"CWE-1333\", \"description\": \"CWE-1333: Inefficient Regular Expression Complexity\", \"lang\": \"en\", \"type\": \"CWE\"}]}], \"providerMetadata\": {\"dateUpdated\": \"2026-10-29T18:13:33.771Z\", \"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\"}, \"references\": [{\"name\": \"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg\", \"tags\": [\"x_refsource_CONFIRM\"], \"url\": \"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg\"}, {\"name\": \"https://github.com/hapijs/joi/pull/3162\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/pull/3162\"}, {\"name\": \"https://github.com/hapijs/joi/pull/3163\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/pull/3163\"}, {\"name\": \"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf\"}, {\"name\": \"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e\"}, {\"name\": \"https://github.com/hapijs/joi/releases/tag/v17.13.9\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/releases/tag/v17.13.9\"}, {\"name\": \"https://github.com/hapijs/joi/releases/tag/v18.3.1\", \"tags\": [\"x_refsource_MISC\"], \"url\": \"https://github.com/hapijs/joi/releases/tag/v18.3.1\"}], \"source\": {\"advisory\": \"GHSA-4528-x5fx-h6hg\", \"discovery\": \"UNKNOWN\"}, \"title\": \"joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service\"}}, \"cveMetadata\": {\"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"assignerShortName\": \"GitHub_M\", \"cveId\": \"CVE-2026-118772\", \"datePublished\": \"2026-10-29T18:13:33.771Z\", \"dateReserved\": \"2026-10-28T19:20:05.018Z\", \"dateUpdated\": \"2026-10-29T18:13:33.771Z\", \"state\": \"PUBLISHED\"}, \"dataType\": \"CVE_RECORD\", \"dataVersion\": \"5.2\"}"}],"record":{"affected":[{"product":"joi","vendor":"hapijs","versions":[{"status":"affected","version":">= 16.0.0, <= 17.1.1"},{"status":"affected","version":">= 18.0.0, < 18.3.1"}]},{"product":"joi","vendor":"@hapi","versions":[{"status":"affected","version":">= 16.0.0, <= 17.1.1"}]}],"cna":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-118772","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-11-04T01:33:26.811594Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-11-04T01:33:51.841Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"joi","vendor":"hapijs","versions":[{"status":"affected","version":">= 16.0.0, <= 17.1.1"},{"status":"affected","version":">= 18.0.0, < 18.3.1"}]},{"product":"joi","vendor":"@hapi","versions":[{"status":"affected","version":">= 16.0.0, <= 17.1.1"}]}],"descriptions":[{"lang":"en","value":"joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1333","description":"CWE-1333: Inefficient Regular Expression Complexity","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-29T18:13:33.771Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg","tags":["x_refsource_CONFIRM"],"url":"https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg"},{"name":"https://github.com/hapijs/joi/pull/3162","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/pull/3162"},{"name":"https://github.com/hapijs/joi/pull/3163","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/pull/3163"},{"name":"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf"},{"name":"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e"},{"name":"https://github.com/hapijs/joi/releases/tag/v17.13.9","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/releases/tag/v17.13.9"},{"name":"https://github.com/hapijs/joi/releases/tag/v18.3.1","tags":["x_refsource_MISC"],"url":"https://github.com/hapijs/joi/releases/tag/v18.3.1"}],"source":{"advisory":"GHSA-4528-x5fx-h6hg","discovery":"UNKNOWN"},"title":"joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-118772","datePublished":"2026-10-29T18:13:33.771Z","dateReserved":"2026-10-28T19:20:05.018Z","dateUpdated":"2026-11-04T01:33:51.841Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"cna_checked":1794522003,"cve":"CVE-2026-118772","description":"joi is a schema description language and data validator for JavaScript. From 17.1.1 until 17.13.9 and 18.3.1, the Joi.string().email({ multiple: true }) rule uses a separator regular expression whose leading whitespace quantifier is retried at every position in a long whitespace run that contains no separator, causing quadratic work during String.prototype.split. The behavior applies to the default separator and every custom separator. Applications that validate attacker-controlled values with the multiple option and no effective prior length limit can have the Node.js event loop blocked for seconds by one request, preventing other work. A .max() rule is not sufficient when abortEarly: false allows the email rule to run after the maximum-length check fails. This vulnerability is fixed in versions 17.13.9 and 18.3.1.","epss":{"date":"2026-11-12","epss":0.00467,"percentile":0.40937},"epss_checked":1794522003,"first_seen":1793669144,"kev":null,"kev_checked":1794522003,"products":"hapijs joi, @hapi joi","references":["https://github.com/hapijs/joi/security/advisories/GHSA-4528-x5fx-h6hg","https://github.com/hapijs/joi/pull/3162","https://github.com/hapijs/joi/pull/3163","https://github.com/hapijs/joi/commit/03dc1d909818503b06240dadc81e9227ed2649cf","https://github.com/hapijs/joi/commit/807858d7480f5075b0610817e3e44230890fb18e","https://github.com/hapijs/joi/releases/tag/v17.13.9","https://github.com/hapijs/joi/releases/tag/v18.3.1"],"score":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","provider":"GitHub_M","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"solutions":"","state":"PUBLISHED","title":"joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service","updated_at":1794500401,"workarounds":""},"sources":[{"canonical_url":"https://github.com/advisories/GHSA-4528-x5fx-h6hg","id":143,"publisher":"GitHub Advisory Database","title":"joi: quadratic-time split in `string().email({ multiple: true })` allows denial of service"}]}
