{"schemaVersion":3,"id":"CVE-2015-9236","aliases":["GHSA-vwrf-r5r4-7775"],"status":"published","duplicateOf":null,"title":null,"description":"Hapi versions less than 11.0.0 implement CORS incorrectly and allowed for configurations that at best returned inconsistent headers and at worst allowed cross-origin activities that were expected to be forbidden. If the connection has CORS enabled but one route has it off, and the route is not GET, the OPTIONS prefetch request will return the default CORS headers and then the actual request will go through and return no CORS headers. This defeats the purpose of turning CORS on the route.","dates":{"published":"2018-05-31T20:00:00.000Z","modified":"2024-09-17T04:15:13.448Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.3,"severity":"medium","version":"3.0","versionLabel":"v3.0","source":"NVD","vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.0","versionLabel":"v3.0","source":"NVD","score":5.3,"severity":"medium","vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"2.0","versionLabel":"v2.0","source":"NVD","score":5,"severity":"medium","vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.01516,"percentile":0.74158,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":-0.024000000000000063,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.0154},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0168,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01516,"percentile":0.74158}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0168,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0154,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01516,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01516,"percentile":0.74158}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-284","name":"Improper Access Control","description":"The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.","type":"weakness","status":"Incomplete","abstraction":"Pillar","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/284.html"},{"id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor","description":"The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/200.html"}],"affected":[{"vendor":"hackerone","product":"hapi node module","name":"hapi node module","label":"hapi node module","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 11.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 11.0.0","eol":null,"hubHref":"/vendor/hackerone/hapi_node_module"},{"vendor":"hapijs","product":"hapi","name":"hapi","label":"hapi","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 11.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 11.0.0","eol":null,"hubHref":"/vendor/hapijs/hapi"},{"vendor":"Npm","product":"hapi","name":"hapi","label":"hapi","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/hapi","purlType":"npm","versions":[{"text":"< 11.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 11.0.0","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/hapijs/hapi/issues/2850","label":"github.com/hapijs/hapi/issues/2850","hostname":"github.com","tags":["X Refsource MISC","Release Notes","Third Party Advisory","WEB"]},{"url":"https://github.com/hapijs/hapi/issues/2840","label":"github.com/hapijs/hapi/issues/2840","hostname":"github.com","tags":["X Refsource MISC","Patch","Third Party Advisory","WEB"]},{"url":"https://nodesecurity.io/advisories/45","label":"nodesecurity.io/advisories/45","hostname":"nodesecurity.io","tags":["X Refsource MISC","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2015-9236","label":"nvd.nist.gov/vuln/detail/CVE-2015-9236","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/advisories/GHSA-vwrf-r5r4-7775","label":"github.com/advisories/GHSA-vwrf-r5r4-7775","hostname":"github.com","tags":["Advisory"]},{"url":"https://www.npmjs.com/advisories/45","label":"www.npmjs.com/advisories/45","hostname":"www.npmjs.com","tags":["WEB"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2018-05-31T20:00:00.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2024-09-17T04:15:13.448Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":22,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T16:13:05.728Z","stale":false,"partial":false}}