{"id":"GHSA-vc9j-fhvv-8vrf","summary":"Remote Code Execution in scratch-vm","details":"MIT Lifelong Kindergarten Scratch scratch-vm before `0.2.0-prerelease.20200714185213` loads extension URLs from untrusted project.json files with certain `_` characters, resulting in remote code execution because the URL's content is treated as a script and is executed as a worker. The responsible code is `getExtensionIdForOpcode` in serialization/sb3.js. The use of `_` is incompatible with a protection mechanism in older versions, in which URLs were split and consequently deserialization attacks were prevented. \n\n**NOTE**: the scratch.mit.edu hosted service is not affected because of the lack of worker scripts.","aliases":["CVE-2020-14000"],"modified":"2023-11-08T04:02:24.878433Z","published":"2020-07-27T19:55:52Z","database_specific":{"nvd_published_at":null,"cwe_ids":["CWE-502"],"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2020-07-27T19:53:24Z"},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-14000"},{"type":"WEB","url":"https://github.com/LLK/scratch-vm/pull/2476"},{"type":"WEB","url":"https://github.com/LLK/scratch-vm/pull/2476/commits/90b9da45f4084958535338d1c4d71a22d6136aab"},{"type":"PACKAGE","url":"https://github.com/LLK/scratch-vm"},{"type":"WEB","url":"https://scratch.mit.edu/discuss/topic/422904/?page=1#post-4223443"}],"affected":[{"package":{"name":"scratch-vm","ecosystem":"npm","purl":"pkg:npm/scratch-vm"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.2.0-prerelease.20200714185213"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2020/07/GHSA-vc9j-fhvv-8vrf/GHSA-vc9j-fhvv-8vrf.json","last_known_affected_version_range":"\u003c= 0.2.0-prerelease.20200709173451"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}