From: Marcel Holtmann <marcel@holtmann.org>
To: bluez-devel@lists.sourceforge.net
Subject: Re: [Bluez-devel] Possible security vulnerability in hcid when calling pin helper
Date: Fri, 05 Aug 2005 05:16:34 +0200 [thread overview]
Message-ID: <1123211794.8331.104.camel@pegasus> (raw)
In-Reply-To: <20050805050932.3111586d.henryk@ploetzli.ch>
Hi Henryk,
> (I'm using a Gentoo Linux box with kernel 2.6.12.1, hcid 2.18 and
> kbluepin from kbluetoothd 0.99-beta1; although the problem seems
> to still exist in current CVS hcid and should be independent of
> the pin helper used.)
>
> I just stumbled upon a bug in hcid that can possibly be used as a
> security vulnerability: In hcid/security.c (around line 335 in current
> CVS) the device name from the remote device is copied straight into the
> command line that is used to call the pin helper, only surrounded by a
> pair of single quotes with _no_ _escaping_ done:
>
> | read_device_name(sba, &ci->bdaddr, name);
> | //hci_remote_name(dev, &ci->bdaddr, sizeof(name), name, 0);
> |
> | ba2str(&ci->bdaddr, addr);
> | snprintf(str, sizeof(str), "%s %s %s \'%s\'", hcid.pin_helper,
> | ci->out ? "out" : "in", addr, name);
>
> At the very least this leads to failures when the remote device uses
> single quotes in its name. E.g. something like "Henryk's Phone" (without
> the double quotes) will give
>
> Aug 5 03:41:03 gleam hcid[24398]: PIN helper exited abnormally with code 512
>
> in the syslog and
>
> sh: -c: line 0: unexpected EOF while looking for matching `''
> sh: -c: line 1: syntax error: unexpected end of file
>
> at stderr when running hcid -n (this is how I originally found the
> problem).
>
> However, something more creative like "';touch '/tmp/foo23" (again
> without the double quotes) will actually execute a program on the
> attacked box (and create a file /tmp/foo23 in this case). For
> reference: in strace this looks like this:
>
> execve("/bin/sh", ["sh", "-c", "/usr/lib/kdebluetooth/kbluepin out 00:0E:ED:00:23:42 \'\';touch \'/tmp/foo23\'"], [/* 62 vars */]) = 0
>
> (note that the conversion from ' to \' was done by strace)
>
> Using this vulnerability one can also create pairings without approval
> of the user: Setting the bluetooth device name to something like
> "'>/dev/null&echo 'PIN:42" (without the double quotes) and then trying
> to create a pairing with a bluez box will override the decision of the
> pin helper and always set 42 as the PIN.
>
> PS: Thanks to roh and Sascha from the CCC Berlin.
thanks for catching this problem. Do you have a fix for it?
Regards
Marcel
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
next prev parent reply other threads:[~2005-08-05 3:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-05 3:09 [Bluez-devel] Possible security vulnerability in hcid when calling pin helper Henryk Plötz
2005-08-05 3:16 ` Marcel Holtmann [this message]
2005-08-05 4:39 ` Henryk Plötz
2005-08-05 8:39 ` Marcel Holtmann
2005-08-05 11:06 ` Steven Singer
2005-08-05 11:12 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1123211794.8331.104.camel@pegasus \
--to=marcel@holtmann.org \
--cc=bluez-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.