Vulnerability · Published Jul 16, 2020 · Assigned by mitre
CVE-2020-14000
Critical 9.8
In plain English
A critical-severity security flaw in the scratch-vm package (npm). There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 2.8% (higher than 87% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| npm | scratch-vm | 0.2.0-prerelease.20200714185213 | GHSA-vc9j-fhvv-8vrf |
Affected products (as reported)
References
- https://github.com/LLK/scratch-vm/pull/2476 x_refsource_CONFIRM
- https://scratch.mit.edu/discuss/topic/422904/?page=1#post-4223443 x_refsource_CONFIRM