GHSA-vc9j-fhvv-8vrf
Remote Code Execution in scratch-vm
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | scratch-vm | < 0.2.0-prerelease.20200714185213 | 0.2.0-prerelease.20200714185213 |
Details
As written in the advisory (Markdown source, shown as plain text).
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.
References
External links from the advisory. They lead to third-party sites.