Updated debdiff with changelog updated based on feedback.

** Description changed:

  [ Impact ]
  
  This SRU contains fixes for a number of bugs:
-  * The unprivileged_userns profile did not have access to the root directory 
(https://gitlab.com/apparmor/apparmor/-/issues/505)
+  * 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, 
https://gitlab.com/apparmor/apparmor/-/merge_requests/1637)
+  * 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 
(https://gitlab.com/apparmor/apparmor/-/merge_requests/1587)
+  * 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 noatime, needed for 
fuse_overlayfs (https://gitlab.com/apparmor/apparmor/-/merge_requests/1673)
+  * fusermount3 lacked permissions to mount with noatime, needed for 
fuse_overlayfs (LP: #2110626)
   * 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 
(https://gitlab.com/apparmor/apparmor/-/merge_requests/1679)
+  * 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)
-    (https://gitlab.com/apparmor/apparmor/-/merge_requests/1674).
+    (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 ]
  
- After installation of the new AppArmor version, the machine might need
- to be rebooted. If a reboot between installation and test plan execution
- is needed for a test to pass, please mention it in the test plan
- execution notes so that we can determine if this is cause for
- verification test failure, expected behavior, or the result of an
- unrelated bug that we are not attempting to fix with this SRU.
- 
- Bug-specific test plans, followed by a generic test plan:
- 
- Test plan for the unprivileged_userns bug:
-  * Ensure that the sysctl kernel.apparmor_restrict_unprivileged_unconfined is 
set to 1
-  * Run unshare -U ls /
-  * Without the fix:
-    - Command above does not list the directory successfully
-    - apparmor generates a denial log blocking opening of / under 
profile="unprivileged_userns"
-  * With the fix: the above error+logging should not occur
- 
- Test plan for the lsblk bug:
-  * Run lsblk on an IBM System Z system
-  * Without the fix:
-    - Command fails to list DASD devices
-    - apparmor generates denial logs blocking access to a path starting with 
/sys/devices/css
-  * With the fix: the above error+logging should not occur
- 
- Test plan for command execution from confined context:
-  * Add the following to a new file and use `apparmor_parser path/to/file` to 
load it as a profile:
-  abi <abi/4.0>,
-  include <tunables/global>
-  profile allow_all {
-    allow all,
-    priority=1 /** px,
-  }
-  * Choose a subset of the applications confined by profiles under 
profiles/apparmor.d modified by 
debian/patches/ubuntu/profiles_ensure_access_to_attach_path.patch, and for each 
selected application:
-    - Run `aa-exec -p allow_all -- the_application`, under sudo if the 
application needs root privileges
-    - Verify that the application does not segfault on launch
-    - If application segfaults on launch only when run under confinement, 
check for apparmor="DENIED" log entry denying read or mmap operations on the 
binary path, and report verification test failure
- 
- Test plan for the plasmashell bug:
-  * This test needs to be executed on a freshly provisioned Kubuntu machine 
with the new AppArmor installed. Testers might want to install `openssh-server` 
on the Kubuntu machine first in order to make extraction of relevant logs 
easier in case of test failure
-  * Add an empty panel and click on "+ Add Widgets"
-  * Add the "Web Browser" -> widget is added to panel -> click on "Exit Edit 
Mode"
-  * Click on icon "Web Browser" or logout/login
-  * Without the fix:
-    - The desktop environment turns black, flickers a few times due to 
attempted restarts, and doesn't return
-    - AppArmor generates denial logs such as apparmor="DENIED" 
operation="exec" class="file" info="no new privs" error=-1 
profile="plasmashell" name="/usr/lib/qt6/libexec/QtWebEngineProcess" pid=2069 
comm="plasmashell" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0 
target="unconfined"
-      + The important parts to match are 'operation="exec"' and 'info="no new 
privs"', and the path under 'name'. If such a log appears, report test 
verification failure
-      + If a different apparmor log involving QtWebEngineProcess appears, note 
it in the test report so that we can evaluate if the tester encountered an 
unrelated plasmashell confinement bug
-  * With the fix: the above error+logging should not occur
- 
- Test plan for the fusermount3 cvmfs bug:
-  * The following instructions are adapted from 
https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html
-    - Install the cvmfs packages
-      + `wget 
https://cvmrepo.s3.cern.ch/cvmrepo/apt/cvmfs-release-latest_all.deb`
-      + `sudo dpkg -i cvmfs-release-latest_all.deb`
-      + `sudo apt-get -y update`
-      + `sudo apt-get -y install cvmfs`
-    - Set up autofs configs by running `sudo cvmfs_config setup` and `sudo 
systemctl restart autofs`
-    - Create `/etc/cvmfs/default.local` and add the lines 
"CVMFS_REPOSITORIES=cvmfs-config.cern.ch", "CVMFS_CLIENT_PROFILE=single" to it
-    - Attempt to mount by running `cvmfs_config probe`
-  * Without the fix:
-    - The mount step fails with a permission denial error
-    - AppArmor generates denial logs for fusermount3 denying the mount syscall
-  * With the fix: the mount should succeed with no AppArmor logs being 
generated
- 
- Test plan for the openvpn bugs:
-  * This test description assumes no access to existing machines that use 
OpenVPN. Additional testing of OpenVPN in related configurations (other 
virtualization solutions, specifying the server location via IPs or actual 
domains, etc.) is encouraged.
-    - Spin up two Ubuntu Plucky VMs, one of which will be referred to as 
openvpn-client and the other of which will be referred to as openvpn-server
-    - Ensure that the two machines are able to ping each other
-    - Generate a key using `openvpn --genkey secret secret.key` and transfer 
this key to both machines, somewhere inside the home directory
-    - Place the following configuration onto openvpn-server, next to 
secret.key:
-    dev tun
-    proto udp
-    cipher aes-256-cbc
-    ifconfig 10.4.13.1 10.4.13.2
-    secret static.key
-    - Place the following configuration onto openvpn-client, next to 
secret.key, substituting the remote location:
-    remote openvpn-server.local
-    dev tun
-    proto udp
-    cipher aes-256-cbc
-    ifconfig 10.4.3.2 10.4.13.1
-    secret static.key
-    - Launch openvpn on both machines by running `openvpn path_to_config` on 
each
-    - If (openvpn-client "remote" config line is a domain name (.local or 
otherwise)) and (openvpn is unable to resolve the domain) and (apparmor is 
generating denials related to (m)DNS lookups), then report verification test 
failure
-    - Ensure that the two machines are able to ping each other through the 
OpenVPN tunnel
-    - Stop both openvpn instances and add the line `push "dhcp-option 
DOMAIN-SEARCH canonical.com"` to the openvpn-server config
-    - Launch openvpn on both machines again and ensure that the two machines 
are able to ping each other through the tunnel
- 
- Test plan for the remmina bug:
-  * Run `sudo aa-status` and look for a loaded remmina profile: it should not 
be there
-  * If it is still there after installing the updated AppArmor and rebooting, 
report verification test failure
-  * Launch remmina
-  * Use ps -Zelf | grep -F remmina to locate the running remmina process
-  * Read the output to verify that remmina is now unconfined
-  * Fully quit remmina through its menu, its task bar entry, or by Ctrl-C'ing 
its terminal (closing the GUI window is insufficient)
-  * Install apparmor-profiles if it wasn't installed already
-  * Repeat the above steps to verify that remmina is unconfined even when 
apparmor-profiles is also installed (including reboot if installing 
apparmor-profiles fresh)
-  * Warning: remmina writes a .desktop file to automatically start itself upon 
login, which will complicate profile replacement if investigating remmina test 
failure
-  
- Test plan for the fusermount3 fuse_overlayfs bug:
-  * Install fuse-overlayfs
-  * Inside the home directory, make folders "lower", "upper", "work", and 
"mountpoint"
-  * Mount a fuse-overlayfs with `fuse-overlayfs -o 
lowerdir=lower,upperdir=upper,workdir=work mountpoint`
-  * Without the fix: the mount fails and apparmor generates a log reporting 
"failed flags match"
-  * With the fix: the mount should succeed
- 
- Test plan for the iotop-c bug:
-  * Launch iotop-c under sudo (make sure to invoke iotop-c directly instead of 
iotop, which might be symlinked to the distinct iotop-py)
-    - Without the fix: iotop-c fails to launch due to permission denials in 
nl_init
-    - With the fix: iotop-c should launch successfully
-  * Attempt to set the ionice value of a running process using iotop-c, and 
verify that the operation succeeds
- 
- Test plan for the parser bug: failures caused by this change will show
- up in the regression tests run as part of the generic test plan
- 
- Test plan for the apparmor.d documentation bug:
-  * Open the apparmor.d man page with `man apparmor.d` and scroll down to the 
example that starts with `mount options=(ro, atime) options in (nodev, user)`
-  * Verify that the mount commands listed as matching the rule all include ro 
and atime
-  * The regression test that checks that the behavior is as documented will 
run as part of the QRT test suite described below
+ 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). 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.
+ 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 is identical to the one for the package uploaded to
- Questing, with the exception of the version number and release name in
- the changelog entry.
+ Questing, with the exception of the changelog.

** Patch added: "apparmor_4.1.0~beta5-0ubuntu15~25.04.1.debdiff"
   
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2110236/+attachment/5877608/+files/apparmor_4.1.0~beta5-0ubuntu15~25.04.1.debdiff

-- 
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:
  New
Status in apparmor source package in Plucky:
  In Progress

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 noatime, needed for 
fuse_overlayfs (LP: #2110626)
   * 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 is identical to the one for the package uploaded
  to Questing, 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