{"id":"CVE-2020-11610","aliases":["EUVD-2022-4615","GHSA-mr5m-2385-2vcp"],"status":"published","title":"xdlocalstorage does not verify request origin","description":"An issue was discovered in xdLocalStorage through 2.0.5. The postData() function in xdLocalStoragePostMessageApi.js specifies the wildcard (*) as the targetOrigin when calling the postMessage() function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","severity":{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.0141,"percentile":0.72878,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-668"],"published":"2020-04-07T17:19:06Z","modified":"2026-10-20T10:51:44Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"xdlocalstorage","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.0.5"}]}]},{"source":"osv","ecosystem":"npm","package":"xdlocalstorage","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"2.0.5"}]}]}],"products":[{"vendor":"cross_domain_local_storage_project","product":"cross_domain_local_storage"}],"references":[{"url":"https://github.com/ofirdagan/cross-domain-local-storage","tags":["x_refsource_MISC","x_transferred","Product","package"]},{"url":"https://grimhacker.com/exploiting-xdlocalstorage-localstorage-and-postmessage/#Missing-TargetOrigin-Magic-iframe","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-11610","tags":["advisory"]},{"url":"https://github.com/ofirdagan/cross-domain-local-storage/issues/17","tags":["web"]},{"url":"https://github.com/ofirdagan/cross-domain-local-storage/pull/19","tags":["web"]},{"url":"https://github.com/advisories/GHSA-mr5m-2385-2vcp"}],"sources":{"cve":[{"id":"CVE-2020-11610","description":"An issue was discovered in xdLocalStorage through 2.0.5. The postData() function in xdLocalStoragePostMessageApi.js specifies the wildcard (*) as the targetOrigin when calling the postMessage() function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2020-04-07T17:19:06Z","modified":"2024-08-04T11:35:13.412Z","updated_at":"2026-11-02T14:35:57.352161Z"}],"euvd":[{"id":"EUVD-2022-4615","description":"An issue was discovered in xdLocalStorage through 2.0.5. The postData() function in xdLocalStoragePostMessageApi.js specifies the wildcard (*) as the targetOrigin when calling the postMessage() function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2020-04-07T17:19:06Z","modified":"2024-08-04T11:35:13Z","updated_at":"2026-11-03T03:07:42.412087Z"}],"ghsa":[{"id":"GHSA-mr5m-2385-2vcp","title":"xdlocalstorage does not verify request origin","description":"An issue was discovered in xdLocalStorage through 2.0.5. The `postData()` function in `xdLocalStoragePostMessageApi.js` specifies the wildcard (`*`) as the targetOrigin when calling the `postMessage()` function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2022-05-24T17:13:39Z","modified":"2023-07-17T18:29:37Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-668"],"updated_at":"2026-11-02T14:36:57.310051Z"}],"nvd":[{"id":"CVE-2020-11610","description":"An issue was discovered in xdLocalStorage through 2.0.5. The postData() function in xdLocalStoragePostMessageApi.js specifies the wildcard (*) as the targetOrigin when calling the postMessage() function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2020-04-07T18:15:13.587Z","modified":"2026-06-17T02:50:28.473Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.8,"vector":"AV:N/AC:M/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-668"],"updated_at":"2026-11-02T14:05:57.678762Z"}],"osv":[{"id":"CVE-2020-11610","description":"An issue was discovered in xdLocalStorage through 2.0.5. The postData() function in xdLocalStoragePostMessageApi.js specifies the wildcard (*) as the targetOrigin when calling the postMessage() function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2020-04-07T18:15:13.587Z","modified":"2026-10-20T10:51:44.285376451Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:14.034736Z"},{"id":"GHSA-mr5m-2385-2vcp","title":"xdlocalstorage does not verify request origin","description":"An issue was discovered in xdLocalStorage through 2.0.5. The `postData()` function in `xdLocalStoragePostMessageApi.js` specifies the wildcard (`*`) as the targetOrigin when calling the `postMessage()` function on the parent object. Therefore any domain can load the application hosting the \"magical iframe\" and receive the messages that the \"magical iframe\" sends.","status":"published","published":"2022-05-24T17:13:39Z","modified":"2023-11-08T04:02:06.702536Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-668"],"updated_at":"2026-11-02T15:46:52.170928Z"}]}}
