QRT commit 97a96290cd862f2fcf6c4737ddfcfeefe3bfd0d0 was used for
testing.

After `sudo ./install-packages test-apparmor.py`, I manually installed
the -proposed versions of the other apparmor packages.

$ apt list --installed '*apparmor*'
apparmor-profiles/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 all [installed]
apparmor-utils/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 all [installed]
apparmor/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 amd64 [installed,automatic]
libapparmor-dev/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 amd64 [installed]
libapparmor1/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 amd64 [installed,autom>
libpam-apparmor/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 amd64 [installed]
python3-apparmor/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 all [installed,aut>
python3-libapparmor/plucky-proposed,now 4.1.0~beta5-0ubuntu14.1 amd64 [installe>
$ apt policy apparmor-profiles
apparmor-profiles:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy apparmor-utils
apparmor-utils:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy apparmor
apparmor:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy libapparmor-dev
libapparmor-dev:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy libapparmor1
libapparmor1:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy libpam-apparmor
libpam-apparmor:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy python3-apparmor
python3-apparmor:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages
$ apt policy python3-libapparmor
python3-libapparmor:
  Installed: 4.1.0~beta5-0ubuntu14.1
  Candidate: 4.1.0~beta5-0ubuntu14.1
  Version table:
 *** 4.1.0~beta5-0ubuntu14.1 100
        100 http://archive.ubuntu.com/ubuntu plucky-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1.0~beta5-0ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu plucky/main amd64 Packages

Abbreviated QRT test results from `sudo test-apparmor.py -v`

Ran 62 tests in 1583.322s

Ok (skipped=3)

Running `apt-get source apparmor` downloaded 4.1.0~beta5-0ubuntu14.1,
with regression-verify-documented-mount-flag-behavior.patch applied.
After building and running the regression test suite with USE_SYSTEM=1,
`mount` was listed as one of the tests that passed

Test plan verification successful

** Tags removed: verification-needed verification-needed-plucky
** Tags added: verification-done verification-done-plucky

-- 
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/2110688

Title:
  apparmor parser incorrectly treats norelatime mount flag as a no-op

Status in apparmor package in Ubuntu:
  Fix Released
Status in apparmor source package in Plucky:
  Fix Committed
Status in apparmor source package in Questing:
  Fix Released

Bug description:
  [ Impact ]

  The parser did not handle the norelatime mount flag correctly,
  essentially treating its addition to a list of mount flags as a no-op.
  A test should also be included to ensure that the behavior is fixed
  and not broken again.

  [ Test Plan ]

  This bug is caught by an addition to AppArmor's regression test suite,
  which is also invoked via its QRT test suite via
  `ApparmorTestsuites.test_regression_testsuite`.

   * 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 the machine
     - `sudo ./test-apparmor.py -v`

  Unfortunately, the regression testsuite itself has no way of printing
  the full list of tests it successfully executed. Below are
  instructions for running the regression test suite by hand, including
  the modified mount test:

   * `apt install dpkg-dev pkg-config libapparmor-dev`
   * `apt-get source apparmor`
   * Verify that the downloaded version is 4.1.0~beta5-0ubuntu14.1 or greater
   * Verify that patch 
debian/patches/ubuntu/regression-verify-documented-mount-flag-behavior.patch 
was applied upon download
   * cd [source]/tests/regression/apparmor
   * Ensure that all the parent directories of the regression test folder are 
world-readable and world-executable, and 'chmod o+rx' any that are not
   * USE_SYSTEM=1 make -j[num]
   * If running the whole regression testsuite, the `make` command might print 
out warnings about skipped tests due to missing packages. Install any packages 
that it says are missing
   * If running the whole regression testsuite, 'sudo USE_SYSTEM=1 make tests'
   * If running just the mount tests, 'sudo USE_SYSTEM=1 bash mount.sh' and 
manually 'echo $?' afterwards to check that it exited with a status of 0 

  [ Where problems could occur ]

  This 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
  existing packaged profiles being used.

  [ Other Info ]

  This bug was originally reported at
  https://gitlab.com/apparmor/apparmor/-/merge_requests/1679.

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


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to