touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #68930
[Bug 1433590] Re: apparmor dbus denial for org.freedesktop.Accounts
IMO solving this at the ui-toolkit level is not correct, as that still
leaves the problem for system services e.g. indicator-datetime.
seb128, looks to me like a lot of this traffic is coming from system-
settings. src/accountsservice.cpp AccountsService::setUpInterface() is
the source of the FindUserById() call, and the Get calls are coming from
when the code pulls the properties for IncomingMessageVibrate,
IncomingMessageVibrateSilentMode, OtherVibrate, DialpadSoundsEnabled,
IncomingCallVibrate, IncomingCallVibrateSilentMode.
Two suggestions:
1. It's not clear to me why these are being stored in AccountsService
instead of in gsettings-ubuntu-touch-schemas. The latter seems the more
logical place for it and would be easy to implement; e.g. if the
properties mentioned above were simple properties in
com.ubuntu.touch.sound. Indeed, it looks like there's already some
overlap, as there's a silent-mode property both there and on
AccountsService. I'd be happy to write g-u-t-s and u-s-s patches for
these if everyone's agreeable on this being moved to touch-schemas.
(This would benefit indicator-datetime too :-)
2. For client applications, I agree with mdeslaur, that it would be good
to have a service handle this instead of relying on client apps to
monitor the setting and do the right thing; e.g. adding an intent
argument to usensord's "VibratePattern" method specifying whether the
vibration is due to an incoming call, a received message, or other. That
still wouldn't solve the problem for system-settings, which still has to
get/set the fields.
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor-easyprof-ubuntu
in Ubuntu.
https://bugs.launchpad.net/bugs/1433590
Title:
apparmor dbus denial for org.freedesktop.Accounts
Status in apparmor-easyprof-ubuntu package in Ubuntu:
Fix Released
Status in ubuntu-ui-toolkit package in Ubuntu:
New
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/ubuntu/+source/apparmor-easyprof-ubuntu/+bug/1433590/+subscriptions