CVE Vulnerabilities

CVE-2020-7580

Unquoted Search Path or Element

Published: Jun 10, 2020 | Modified: Apr 28, 2023
CVSS 3.x
6.7
MEDIUM
Source:
NVD
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.2 HIGH
AV:L/AC:L/Au:N/C:C/I:C/A:C
RedHat/V2
RedHat/V3
Ubuntu

A vulnerability has been identified in SIMATIC Automation Tool (All versions < V4 SP2), SIMATIC NET PC Software V14 (All versions < V14 SP1 Update 14), SIMATIC NET PC Software V15 (All versions), SIMATIC NET PC Software V16 (All versions < V16 Upd3), SIMATIC PCS neo (All versions < V3.0 SP1), SIMATIC ProSave (All versions < V17), SIMATIC S7-1500 Software Controller (All versions < V21.8), SIMATIC STEP 7 (TIA Portal) V13 (All versions < V13 SP2 Update 4), SIMATIC STEP 7 (TIA Portal) V14 (All versions < V14 SP1 Update 10), SIMATIC STEP 7 (TIA Portal) V15 (All versions < V15.1 Update 5), SIMATIC STEP 7 (TIA Portal) V16 (All versions < V16 Update 2), SIMATIC STEP 7 V5 (All versions < V5.6 SP2 HF3), SIMATIC WinCC OA V3.16 (All versions < V3.16 P018), SIMATIC WinCC OA V3.17 (All versions < V3.17 P003), SIMATIC WinCC Runtime Advanced (All versions < V16 Update 2), SIMATIC WinCC Runtime Professional V13 (All versions < V13 SP2 Update 4), SIMATIC WinCC Runtime Professional V14 (All versions < V14 SP1 Update 10), SIMATIC WinCC Runtime Professional V15 (All versions < V15.1 Update 5), SIMATIC WinCC Runtime Professional V16 (All versions < V16 Update 2), SIMATIC WinCC V7.4 (All versions < V7.4 SP1 Update 14), SIMATIC WinCC V7.5 (All versions < V7.5 SP1 Update 3), SINAMICS STARTER (All Versions < V5.4 HF2), SINAMICS Startdrive (All Versions < V16 Update 3), SINEC NMS (All versions < V1.0 SP2), SINEMA Server (All versions < V14 SP3), SINUMERIK ONE virtual (All Versions < V6.14), SINUMERIK Operate (All Versions < V6.14). A common component used by the affected applications regularly calls a helper binary with SYSTEM privileges while the call path is not quoted. This could allow a local attacker to execute arbitrary code with SYTEM privileges.

Weakness

The product uses a search path that contains an unquoted element, in which the element contains whitespace or other separators. This can cause the product to access resources in a parent path.

Affected Software

Name Vendor Start Version End Version
Simatic_automatic_tool Siemens * *
Simatic_net_pc Siemens * 16 (excluding)
Simatic_net_pc Siemens 16 (including) 16 (including)
Simatic_net_pc Siemens 16-update1 (including) 16-update1 (including)
Simatic_pcs_7 Siemens * *
Simatic_pcs_neo Siemens * *
Simatic_prosave Siemens * *
Simatic_s7-1500_software_controller Siemens * 21.8 (excluding)
Simatic_step_7 Siemens * 5.6 (excluding)
Simatic_step_7 Siemens 13 (including) 16 (including)
Simatic_step_7 Siemens 5.6 (including) 5.6 (including)
Simatic_step_7 Siemens 5.6-sp1 (including) 5.6-sp1 (including)
Simatic_step_7 Siemens 5.6-sp2 (including) 5.6-sp2 (including)
Simatic_step_7 Siemens 5.6-sp2_hotfix1 (including) 5.6-sp2_hotfix1 (including)
Simatic_wincc Siemens * 7.4 (excluding)
Simatic_wincc Siemens 7.4 (including) 7.4 (including)
Simatic_wincc Siemens 7.4-sp1 (including) 7.4-sp1 (including)
Simatic_wincc Siemens 7.4-sp1_update1 (including) 7.4-sp1_update1 (including)
Simatic_wincc Siemens 7.4-sp1_update10 (including) 7.4-sp1_update10 (including)
Simatic_wincc Siemens 7.4-sp1_update11 (including) 7.4-sp1_update11 (including)
Simatic_wincc Siemens 7.4-sp1_update12 (including) 7.4-sp1_update12 (including)
Simatic_wincc Siemens 7.4-sp1_update13 (including) 7.4-sp1_update13 (including)
Simatic_wincc Siemens 7.4-sp1_update2 (including) 7.4-sp1_update2 (including)
Simatic_wincc Siemens 7.4-sp1_update3 (including) 7.4-sp1_update3 (including)
Simatic_wincc Siemens 7.4-sp1_update4 (including) 7.4-sp1_update4 (including)
Simatic_wincc Siemens 7.4-sp1_update5 (including) 7.4-sp1_update5 (including)
Simatic_wincc Siemens 7.4-sp1_update6 (including) 7.4-sp1_update6 (including)
Simatic_wincc Siemens 7.4-sp1_update7 (including) 7.4-sp1_update7 (including)
Simatic_wincc Siemens 7.4-sp1_update8 (including) 7.4-sp1_update8 (including)
Simatic_wincc Siemens 7.4-sp1_update9 (including) 7.4-sp1_update9 (including)
Simatic_wincc Siemens 7.5 (including) 7.5 (including)
Simatic_wincc Siemens 7.5-sp1 (including) 7.5-sp1 (including)
Simatic_wincc Siemens 7.5-sp1_update1 (including) 7.5-sp1_update1 (including)
Simatic_wincc Siemens 7.5-sp1_update2 (including) 7.5-sp1_update2 (including)
Simatic_wincc_open_architecture Siemens 3.16 (including) 3.16 (including)
Simatic_wincc_open_architecture Siemens 3.17 (including) 3.17 (including)
Simatic_wincc_runtime_advanced Siemens * *
Simatic_wincc_runtime_professional Siemens 13 (including) 16 (including)
Sinamics_startdrive Siemens * *
Sinamics_starter_commissioning_tool Siemens * *
Sinec_network_management_system Siemens * *
Sinema_server Siemens * *
Sinumerik_one_virtual Siemens * *
Sinumerik_operate Siemens * *

Potential Mitigations

  • Assume all input is malicious. Use an “accept known good” input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
  • When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, “boat” may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as “red” or “blue.”
  • Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code’s environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.

References