{"api_version":"1","generated_at":"2026-07-23T12:36:40+00:00","cve":"CVE-2020-11610","urls":{"html":"https://cve.report/CVE-2020-11610","api":"https://cve.report/api/cve/CVE-2020-11610.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2020-11610","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2020-11610"},"summary":{"title":"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.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2020-04-07 18:15:00","updated_at":"2021-07-21 11:39:00"},"problem_types":["CWE-668"],"metrics":[],"references":[{"url":"https://github.com/ofirdagan/cross-domain-local-storage","name":"https://github.com/ofirdagan/cross-domain-local-storage","refsource":"MISC","tags":["Product"],"title":"GitHub - ofirdagan/cross-domain-local-storage: A neet solution for cross domain local storage using invisible iframe and post messages","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"https://grimhacker.com/exploiting-xdlocalstorage-localstorage-and-postmessage/#Missing-TargetOrigin-Magic-iframe","name":"https://grimhacker.com/exploiting-xdlocalstorage-localstorage-and-postmessage/#Missing-TargetOrigin-Magic-iframe","refsource":"MISC","tags":["Exploit","Third Party Advisory"],"title":"Exploiting xdLocalStorage (localStorage and postMessage) – GrimBlog","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-11610","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-11610","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2020","cve_id":"11610","vulnerable":"1","versionEndIncluding":"2.0.5","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"cross_domain_local_storage_project","cpe5":"cross_domain_local_storage","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2020-11610","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"url":"https://github.com/ofirdagan/cross-domain-local-storage","refsource":"MISC","name":"https://github.com/ofirdagan/cross-domain-local-storage"},{"url":"https://grimhacker.com/exploiting-xdlocalstorage-localstorage-and-postmessage/#Missing-TargetOrigin-Magic-iframe","refsource":"MISC","name":"https://grimhacker.com/exploiting-xdlocalstorage-localstorage-and-postmessage/#Missing-TargetOrigin-Magic-iframe"}]}},"nvd":{"publishedDate":"2020-04-07 18:15:00","lastModifiedDate":"2021-07-21 11:39:00","problem_types":["CWE-668"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":8.8,"baseSeverity":"HIGH"},"exploitabilityScore":2.8,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":6.8},"severity":"MEDIUM","exploitabilityScore":8.6,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":true}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:cross_domain_local_storage_project:cross_domain_local_storage:*:*:*:*:*:*:*:*","versionEndIncluding":"2.0.5","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2020","CveId":"11610","Ordinal":"172299","Title":"CVE-2020-11610","CVE":"CVE-2020-11610","Year":"2020"},"notes":[{"CveYear":"2020","CveId":"11610","Ordinal":"1","NoteData":"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.","Type":"Description","Title":null},{"CveYear":"2020","CveId":"11610","Ordinal":"2","NoteData":"2020-04-07","Type":"Other","Title":"Published"},{"CveYear":"2020","CveId":"11610","Ordinal":"3","NoteData":"2020-04-07","Type":"Other","Title":"Modified"}]}}}