First published: Thu Jul 16 2020(Updated: )
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. **NOTE**: the scratch.mit.edu hosted service is not affected because of the lack of worker scripts.
Credit: cve@mitre.org cve@mitre.org
Affected Software | Affected Version | How to fix |
---|---|---|
npm/scratch-vm | <=0.2.0-prerelease.20200709173451 | 0.2.0-prerelease.20200714185213 |
Mit Scratch-vm | <0.2.0-prerelease.20200714185213 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of CVE-2020-14000 is critical with a severity value of 9.8.
To fix CVE-2020-14000, update the affected software to version 0.2.0-prerelease.20200714185213 or later.
The affected software version for CVE-2020-14000 is up to and including version 0.2.0-prerelease.20200714185213.
The Common Weakness Enumeration (CWE) ID for CVE-2020-14000 is 502.
You can find more information about CVE-2020-14000 at the following references: [NVD](https://nvd.nist.gov/vuln/detail/CVE-2020-14000), [GitHub pull request #2476](https://github.com/LLK/scratch-vm/pull/2476), [GitHub commit 90b9da45f4084958535338d1c4d71a22d6136aab](https://github.com/LLK/scratch-vm/pull/2476/commits/90b9da45f4084958535338d1c4d71a22d6136aab).