Control: reassign -1 src:policykit-1

Sorry, wrong source package name; forwarding this to make sure other
maintainers see it.

On Thu, 01 Sep 2022 at 18:30:42 +0100, Simon McVittie wrote:
> Source: polkitd
> Version: 0.105-33
> Severity: important
> Tags: patch
> X-Debbugs-Cc: t...@security.debian.org, dukt...@packages.debian.org
> 
> We have effectively been maintaining a fork of polkit 0.105 in unstable
> since 2013, and it's unsustainable. The reason why we were stuck on
> 0.105 for so long is that maintainers didn't want to move from .pkla to
> JavaScript as a format for authorization rules, for these reasons:
> 
> 1. philosophical: .pkla is declarative, the JavaScript rules are
>    imperative (and indeed Turing-complete)
> 2. practical: mozjs is not an easy project to have as a dependency
> 3. practical: the migration path from .pkla to JavaScript for sysadmins'
>    local configuration is not obvious
> 
> I believe we now have consensus among the maintainers that (1.) is not a
> blocker for updating to a new upstream release.
> 
> (2.) has been solved in experimental by upstream support for using duktape
> instead of mozjs. If mozjs is like nodejs or Python, then duktape is
> more like Lua: it's a smaller and more limited JavaScript implementation,
> optimized for small size rather than features and speed.
> 
> Now that the use of JavaScript is not a barrier, (3.) has been solved
> in experimental by converting the polkitd-pkla package into an optional
> addon, which hooks into the JavaScript implementation of polkitd and calls
> out to a helper executable which implements the old .pkla configuration
> format. I have also reported bugs tagged in
> https://udd.debian.org/cgi-bin/bts-usertags.cgi?user=pkg-utopia-maintainers%40lists.alioth.debian.org&tag=pkla-without-js
> for all the packages that include .pkla configuration with no JavaScript
> equivalent, which will not work as intended when users install
> polkitd-javascript but do not install the suggested package polkitd-pkla.
> 
> I think this means the pieces are all in place for merging the
> version from experimental into testing/unstable, and we have consensus
> among the package's maintainers that we want the polkitd-javascript
> implementation to be the only one, with polkitd-pkla as an optional
> addon for backwards-compat (this would put us in the same situation
> as Fedora and RHEL). I've cc'd the security team and the duktape
> maintainers in case they are aware of any showstoppers with this plan.
> 
> Previous discussion is in
> https://salsa.debian.org/utopia-team/polkit/-/merge_requests/6 and
> https://bugs.launchpad.net/ubuntu/+source/policykit-1/+bug/1972654.
> 
> Security implications
> ---------------------
> 
> Not using a 9 year old fork of polkit would make the maintainers a lot
> more comfortable about not having implementation errors in the C code.
> I have tried to backport fixes from upstream polkit, but 9 years is a long
> time to be doing that across and not all patches can be applied.
> 
> The JavaScript that is interpreted to carry out policy checks is totally
> trusted (the whole point of it is that it lets the sysadmin choose who can
> do what with elevated privileges), so it is not a problem if duktape can be
> made to do bad things by using attacker-controlled JavaScript: if there is
> attacker-controlled JavaScript in use, we have already lost.
> 
> The JavaScript rules can interact with objects provided by polkit, which
> can have metadata provided by the service that is querying the policy.
> This metadata might be attacker-controlled in some cases, so duktape's
> string processing is potentially security-senstive here.
> 
> If users upgrade polkitd without installing the optional package
> polkitd-pkla, then any local .pkla customization will not run, which
> might mean that restrictive non-default policies get reset to being
> less restrictive.
> 
> Remaining things to do
> ----------------------
> 
> Security team and duktape maintainers: do you have any strong objections?
> 
> We need to decide: do we ship polkitd-pkla in Debian 12, or remove
> it? There was no consensus among maintainers on this: Martin Pitt and
> Iain Lane thought we should ship it, Michael Biebl thought we should not.
> 
> We need to decide: if we ship it, how strongly does polkitd depend on
> it? A hard Depends is too strong, and would be circular. Recommends might
> be justifiable, and would pull it in during 11 -> 12 upgrades, at the cost
> of keeping this legacy code around (polkit-pkla-compat has essentially not
> been touched since 2013 either). For the moment I've gone with Suggests.
> I think we should definitely relax it to Suggests, or no dependency at all,
> in the Debian 13 cycle.
> 
> Another thing we could do, if we want to, would be to give polkitd a
> weak dependency on polkitd-pkla (Suggests or nothing at all), but give
> the transitional package policykit-1 a stronger dependency (perhaps
> Recommends) so that polkitd-pkla gets pulled in during upgrades from
> Debian 11.
> 
> We should have a NEWS entry, but that's blocked by deciding what shape
> the final packaging is going to be.
> 
> We should probably merge the polkitd and polkitd-javascript packages
> back together at some point, but for now I've kept them separate, so
> that if someone vetoes the use of JavaScript we won't have to go back
> through NEW to redo the package split.

Reply via email to