On Wed, Jul 13, 2016 at 10:41 AM, Zhang Enwei <enwei.zh...@canonical.com> wrote:
> I am now investigating if org.freedesktop.DBus.GetConnectionUnixProcessID > is supported in go-dbus. > If it is supported, we can use pid to get the name of the process or path > of the binary. > > -- > You received this bug notification because you are a bug assignee. > https://bugs.launchpad.net/bugs/1433590 > > Title: > apparmor dbus denial for org.freedesktop.Accounts and make Other > vibrations work > > Status in Canonical System Image: > Triaged > Status in apparmor-easyprof-ubuntu package in Ubuntu: > Fix Released > Status in ubuntu-system-settings package in Ubuntu: > Confirmed > Status in ubuntu-ui-toolkit package in Ubuntu: > Confirmed > Status in usensord package in Ubuntu: > Confirmed > > Bug description: > This affects vivid and (somewhat recently?) 14.09. > > At some point, apps started to request access to > org.freedesktop.Accounts for something, but I'm not sure what. It has > been conjectured in this bug that it is due to vibration settings. > Filing against ubuntu-system-settings for now, but please feel free to > move to the correct package. > > This happens with webapps: > Apr 7 08:42:17 ubuntu-phablet dbus[797]: apparmor="DENIED" > operation="dbus_method_call" bus="system" path="/org/freedesktop/Accounts" > interface="org.freedesktop.DBus.Introspectable" member="Introspect" > mask="send" name="org.freedesktop.Accounts" pid=2632 > profile="com.ubuntu.developer.webapps.webapp-facebook_webapp-facebook_1.0.26" > peer_pid=1596 peer_profile="unconfined" > Apr 7 08:42:17 ubuntu-phablet dbus[797]: apparmor="DENIED" > operation="dbus_method_call" bus="system" path="/org/freedesktop/Accounts" > interface="org.freedesktop.Accounts" member="FindUserById" mask="send" > name="org.freedesktop.Accounts" pid=2632 > profile="com.ubuntu.developer.webapps.webapp-facebook_webapp-facebook_1.0.26" > peer_pid=1596 peer_profile="unconfined" > > and QML apps: > Apr 7 08:43:40 ubuntu-phablet dbus[797]: apparmor="DENIED" > operation="dbus_method_call" bus="system" path="/org/freedesktop/Accounts" > interface="org.freedesktop.DBus.Introspectable" member="Introspect" > mask="send" name="org.freedesktop.Accounts" pid=3377 > profile="com.ubuntu.calculator_calculator_1.3.339" peer_pid=1596 > peer_profile="unconfined" > Apr 7 08:43:40 ubuntu-phablet dbus[797]: apparmor="DENIED" > operation="dbus_method_call" bus="system" path="/org/freedesktop/Accounts" > interface="org.freedesktop.Accounts" member="FindUserById" mask="send" > name="org.freedesktop.Accounts" pid=3377 > profile="com.ubuntu.calculator_calculator_1.3.339" peer_pid=1596 > peer_profile="unconfined" > > The following rules allow the requested access: > dbus (send) > bus=system > path="/org/freedesktop/Accounts" > interface="org.freedesktop.DBus.{Introspectable,Properties}" > member=Introspect > peer=(name=org.freedesktop.Accounts,label=unconfined), > dbus (send) > bus=system > path="/org/freedesktop/Accounts" > interface="org.freedesktop.Accounts" > member=FindUserById > peer=(name=org.freedesktop.Accounts,label=unconfined), > dbus (send) > bus=system > path="/org/freedesktop/Accounts/User[0-9]*" > interface="org.freedesktop.DBus.Properties" > member=Get > peer=(name=org.freedesktop.Accounts,label=unconfined), > > However, the above is too lenient and constitutes a privacy leak for > apps. FindUserById could be used by a malicious app to enumerate > usernames on multiuser systems and because we can't mediate method > data with apparmor, the Get() method can be used to obtain any > information provided by this interface. > > The following can be used to see what can be leaked to a malicious app: > gdbus introspect --system -d org.freedesktop.Accounts -o > /org/freedesktop/Accounts/User`id -u phablet` > > This can be solved in a couple of ways: > 1. add whatever information the app is trying to access to a new helper > service that only exposes things that the app needs. This could be a single > standalone service, perhaps something from ubuntu-system-settings, that > could expose any number of things-- the current locale, if the locale > changed, if the grid units changed, the vibration settings, etc. Since this > service wouldn't have any sensitive information, you could use standard > dbus properties/Get()/etc > 2. add a new dbus API to an existing service such that apparmor rules > can then be used to allow by method (eg, GetVibration() or something) > > I won't dictate the implementation except to mention that '1' seems > like something generally useful and I believe that it was something > the ubuntu-system-settings devs were already looking at for detecting > locale changes without rebooting. > > > Original description > starting an app in vivid (image 135 on arale currently) > > produces a bunch of dbus denials in syslog ... (there is also a > /dev/tty one but i think this is just because soemthing tries to write > an error to console ... so transient) > > http://paste.ubuntu.com/10620834/ > > To manage notifications about this bug go to: > > https://bugs.launchpad.net/canonical-devices-system-image/+bug/1433590/+subscriptions > -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1433590 Title: apparmor dbus denial for org.freedesktop.Accounts and make Other vibrations work To manage notifications about this bug go to: https://bugs.launchpad.net/canonical-devices-system-image/+bug/1433590/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs