Critical, CVSS 9.8npmAmendedPublished
Remote Code Execution in scratch-vm
CVE-2020-14000 · GHSA-vc9j-fhvv-8vrf
- Affected
- npm scratch-vm <= 0.2.0-prerelease.20200709173451
- Fixed in
- 0.2.0-prerelease.20200714185213· Vendor fix available
- Issue
- 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.
Recommended action: Upgrade to 0.2.0-prerelease.20200714185213 (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.