Vulnerability Name:

CVE-2020-14000 (CCN-185417)

Assigned:2020-07-14
Published:2020-07-14
Updated:2020-07-24
Summary: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.
CVSS v3 Severity:9.8 Critical (CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
8.5 High (Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): High
Integrity (I): High
Availibility (A): High
9.8 Critical (CCN CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
8.5 High (CCN Temporal CVSS v3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C)
Exploitability Metrics:Attack Vector (AV): Network
Attack Complexity (AC): Low
Privileges Required (PR): None
User Interaction (UI): None
Scope:Scope (S): Unchanged
Impact Metrics:Confidentiality (C): High
Integrity (I): High
Availibility (A): High
CVSS v2 Severity:7.5 High (CVSS v2 Vector: AV:N/AC:L/Au:N/C:P/I:P/A:P)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Authentication (Au): None
Impact Metrics:Confidentiality (C): Partial
Integrity (I): Partial
Availibility (A): Partial
10.0 High (CCN CVSS v2 Vector: AV:N/AC:L/Au:N/C:C/I:C/A:C)
Exploitability Metrics:Access Vector (AV): Network
Access Complexity (AC): Low
Athentication (Au): None
Impact Metrics:Confidentiality (C): Complete
Integrity (I): Complete
Availibility (A): Complete
Vulnerability Type:CWE-502
Vulnerability Consequences:Gain Access
References:Source: MITRE
Type: CNA
CVE-2020-14000

Source: XF
Type: UNKNOWN
mit-lifelong-cve202014000-code-exec(185417)

Source: CCN
Type: scratch-vm GIT Repository
sanitize extension ID in getExtensionIdForOpcode #2476

Source: CONFIRM
Type: Third Party Advisory
https://github.com/LLK/scratch-vm/pull/2476

Source: CCN
Type: Scratch Web site
CVE-2020-14000: Script Injection vulnerability in scratch-vm

Source: CONFIRM
Type: Vendor Advisory
https://scratch.mit.edu/discuss/topic/422904/?page=1#post-4223443

Source: CCN
Type: NPM Web site
scratch-vm

Source: CCN
Type: WhiteSource Vulnerability Database
CVE-2020-14000

Vulnerable Configuration:Configuration 1:
  • cpe:/a:mit:scratch-vm:*:*:*:*:*:*:*:* (Version < 0.2.0-prerelease.20200714185213)

  • * Denotes that component is vulnerable
    BACK
    mit scratch-vm *