I have consolidated all the review notes for the individual bugs in this
one, matching my review log:

Reviewing apparmor SRU: I went through the bug list one by one and
checked each bug against the changes in the package one by one.

Meta bug:
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110236

* General note:  
  * The test plans should ensure the profiles are active; otherwise if there is 
a syntax error in them, we’d pass the tests because the processes are running 
unconfined\! Preferably by checking that something else that we expect to be 
denied is denied rather than it being loaded in the kernel.  
  * Having more backlinks from patches to Ubuntu bugs would be preferable. Also 
consider adopting the patch tagging guidelines from 
[https://dep-team.pages.debian.net/deps/dep3/](https://dep-team.pages.debian.net/deps/dep3/)
   
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2102033](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2102033)
  
  * This was a bit hard to identify where the file got renamed; the profile got 
introduced in  
apparmor-4.1.0\~beta5/debian/patches/ubuntu/remmina\_mr\_1348.patch and there 
the filename is changed.  
  * Impact and test plan are quite straightforward, if not entirely end oto 
end: We don’t actually test that something that got denied now works (we don’t 
test a user story), but rather that apparmor doesn’t interfer anymore (since it 
has no profile loaded)  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107402](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107402)
  
  * This adds a simple new patch lsblk-s390-fixes.patch that allows the path.  
    * It is a bit confusing to review because it also includes the fix for 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107455](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107455)
 in the same patch (allowing /usr/bin/lsbk).   
    * Luckily the patch has some metadata about the bugs it fixes  
  * Regression risk is accordingly minimal since it only loosens a profile  
  * I believe that “heck if apparmor is enabled and the profile active:” should 
be in the test plan, not the “Where problems could occur”  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107455](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107455)
  
  * This is essentially a subset of 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110628](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110628)
 focused only on lsblk.  
  * The impact could give an example of a configuration this commonly happens 
in \[containers are listed in the other info\]  
  * The test plan:  
    * inadvertently does not actually test lsblk but rather random binaries 
from the other bug.  
    * Should ensure the lsblk profile is actually loaded  
  * The problem potential is straightforward since we only add the 
“/usr/bin/lsblk” mapping.  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107596](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107596)
  
  * Impact: It’s not clear how OpenVPN fails: Does it simply not apply the DHCP 
settings because the script fails or is the connection not established?  
  * The test plan should  
    * be extended to ensure that the pushed dhcp option is actually being 
applied  
    * ensure that the relevant openvpn profile is active when testing  
  * Where problems could occur should explain the `attach_disconnected` change 
and how it impacts the security  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107723](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107723)
  
  * The test plan should ensure that the relevant profile is active  
    The patch is quite straight forward, adjusting to a new path  
  * The where problems could occur part is wrong this time: This does not 
loosen confinement  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107727](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107727)
  
  * The impact here isn’t exactly matching the patch since we also fix nicing 
processes (which is tested in the test plan).  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2109029](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2109029)
  
  * Test plan seems reasonable, we only need to check that the correct remote 
was connected to, which this achieves. Otherwise refer to the notes on 
[2107596](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2107596)  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110616](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110616)
  
  * The test plan should ensure that the relevant profile is active  
  * The patch itself is quite straightforward.  
  * Nitpick: I’d optimally like the problems section to go into further detail 
on how allowing access to the root directory could cause a problem, is being 
able to list / security relevant in some places that we don’t expect.  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110624](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110624)
  
  * The test plan should ensure that the relevant profile is active  
  * Nitpick: This is rather straightforward but I feel like adding each 
possible FUSE to fusermount3 profile rather than having the FUSE fs’s extend 
the profile is not the best way to approach this issue as it leads to allowing 
all sorts of weird interactions.  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110626](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110626)
  
  * The test plan should ensure that the relevant profile is active  
  * The patch does a bit of refactoring which makes things easier to read but 
requires double checking that both sections that got merged are correctly 
presented  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110628](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110628)
  
  * The test plan seems reasonable straight forward.  
  * The test plan should ensure that the relevant profile that is being tested 
is active (i.e say `foo` profile is being applied to process `foo` being run 
inside aa-exec).  
  * The test plan should ensure that all changed profiles can still be loaded, 
even the ones we did not test  
  * The patch is straightforward just verbose :D  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110630](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110630)
  
  * Nothing to complain about really  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110688](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110688)
  
  * I’d like the test plan to link to the specific test in the test suite and 
include verification that that test was actually being run (i.e. the test suite 
could be old or failed to run the test perhaps)  
* 
[https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2111807](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2111807)
  
  * The test plan should ensure that the relevant profile is active  
  * I’m confused a bit where the noexec is coming from, but I suppose that 
sshfs adds it by default  
* Other changes lacking an individual bug: I went over the entire diff looking 
for stuff I have not reviewed above:  
  * I noticed `regression-verify-documented-mount-flag-behavior.patch` here 
which is mentioned in the meta bug.

** Changed in: apparmor (Ubuntu Plucky)
       Status: Fix Committed => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor in Ubuntu.
https://bugs.launchpad.net/bugs/2110236

Title:
  [SRU] fixes for AppArmor in Plucky

Status in apparmor package in Ubuntu:
  Fix Released
Status in apparmor source package in Plucky:
  Incomplete

Bug description:
  [ Impact ]

  This SRU contains fixes for a number of bugs:
   * The unprivileged_userns profile did not have access to the root directory 
(LP: #2110616)
   * lsblk could not list DASD devices on IBM System Z (LP: #2107402)
   * Various commands segfaulted when run from a confined context due to 
missing permissions on the binary execution path (LP: #2107455, LP: #2110628)
   * The plasmashell profile was missing new path to QtWebEngineProcess, 
causing breakage of Web Browser widget (LP: #2107723)
   * fusermount3 lacked permissions to mount to /cvmfs (LP: #2110624)
   * openvpn lacked permissions to manage DNS settings for pushed DHCP settings 
(LP: #2107596)
   * openvpn lacked permissions to perform mDNS lookups (LP: #2109029)
   * remmina broke due to missing permissions (LP: #2107723)
   * fusermount3 lacked permissions to mount with flags needed for 
fuse_overlayfs and sshfs via fstab (LP: #2110626, LP: #2111807)
   * iotop-c failed to launch at all due to permission denials in nl_init (LP: 
#2107727)
   * The parser did not handle the norelatime mount flag correctly (LP: 
#2110688)
   * The apparmor.d man page contained incorrect information about the 
combination of mount options=(list) options in (list)
     (LP: #2110630)
   * This SRU also includes a regression test update 
(https://gitlab.com/apparmor/apparmor/-/merge_requests/1672) that is not part 
of the built package but that 1) ensures that the documented behavior lines up 
with the actual behavior, and 2) serves as a test for the parser patch

  [ Test Plan ]

  Bug-specific test plans can be found in their respective LP bug
  entries.

  Generic test plan (for all AppArmor changes, not specific to this
  SRU):

  AppArmor is also extensively tested via its QRT test suite, which includes 
execution of the AppArmor test suite.
   * To prepare the QRT test suite (can be done on any machine):
     - `git clone https://git.launchpad.net/qa-regression-testing`
     - `./scripts/make-test-tarball ./scripts/test-apparmor.py`
   * To run the QRT test suite:
     - Copy the tarball onto the machine with the new AppArmor installed and 
extract it
     - `sudo ./install-packages test-apparmor.py`
     - Reboot after dependency installation
     - `sudo ./test-apparmor.py -v`

  [ Where problems could occur ]

  All the profile changes in this SRU are loosening confinement on a
  profile. However, if a user manually modified the installed profiles,
  then the package upgrade would cause conflicts, and rejection of the
  incoming changes (either by hand during an interactive upgrade or
  automatically during an batch unattended upgrade) would result in end
  users not getting the complete set of packaged fixes. However, as each
  of the files updated are independent of each other, a partially fixed
  state will not be more broken than an unfixed (before upgrade) state.

  Remmina profile specific: If a user set up custom profiles that use
  "peer=remmina" IPC rules, then these rules would break upon the
  upgrade removing the remmina profile. However, none of the officially
  shipped profiles include such rules.

  The man page update is a documentation-only change. The risk exists
  that the new packaged man page could be malformed, but this is
  unlikely since the man page is generated by pod2man, and such issues
  can be caught during testing by attempting to open the man page after
  installation of the new version.

  The parser fix changes the behavior of mount rules that explicitly
  specify the norelatime flag. In particular, a custom profile
  containing `mount options in (norelatime)` will have different, more
  permissive behavior than before (reducing regression risk as compared
  to tightening behavior). However, this flag is not used in any of the
  commonly used profiles (including the ones in our repo and the profile
  fragments used by snapd), so this will not change the behavior of most
  profiles being used.

  [ Other Info ]

  The attached debdiff has a subset of the changes in the Questing
  AppArmor package (4.1.0~beta5-0ubuntu14..4.1.0~beta5-0ubuntu16), with
  the exception of the changelog.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110236/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to