[Bug 2072524] Re: Allow non-owned lockfile writes in /var/lib/libvirt/swtpm/

Timo Aaltonen 2072524 at bugs.launchpad.net
Fri Aug 9 05:24:45 UTC 2024


Hello Lena, or anyone else affected,

Accepted swtpm into jammy-proposed. The package will build now and be
available at https://launchpad.net/ubuntu/+source/swtpm/0.6.3-0ubuntu3.3
in a few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
jammy to verification-done-jammy. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-jammy. In either case, without details of your testing we will
not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: swtpm (Ubuntu Jammy)
       Status: In Progress => Fix Committed

** Tags added: verification-needed verification-needed-jammy

** Changed in: swtpm (Ubuntu Noble)
       Status: In Progress => Fix Committed

** Tags added: verification-needed-noble

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to swtpm in Ubuntu.
https://bugs.launchpad.net/bugs/2072524

Title:
  Allow non-owned lockfile writes in /var/lib/libvirt/swtpm/

Status in swtpm package in Ubuntu:
  Fix Released
Status in swtpm source package in Jammy:
  Fix Committed
Status in swtpm source package in Mantic:
  Won't Fix
Status in swtpm source package in Noble:
  Fix Committed
Status in swtpm source package in Oracular:
  Fix Released

Bug description:
  [Impact]

  The default apparmor profile for swtpm blocks access to libvirt TPM2
  NVRAM state lockfiles. This causes denials for users who want to view
  TPM states via swtpm's socket API.

  The fix for this should be backported so print-states for libvirt TPM
  works for users by default.

  The issue is fixed by adding non-owner write permissions to the
  /var/lib/libvirt/swtpm/ directory.

  [Test Plan]

  $ sudo apt update && sudo apt dist-upgrade -y
  $ sudo apt install swtpm virt-manager apparmor -y

  # Create a vm with virt-manager that uses a TPM2 device and start it
  # A directory will show up in /var/lib/libvirt/swtpm/ using the vm's ID, such as:
  # /var/lib/libvirt/swtpm/ab930d41-1600-4987-bfb0-34107be38cc5

  # Before fix
  $ sudo swtpm socket --print-states --tpmstate dir=/var/lib/libvirt/swtpm/ab930d41-1600-4987-bfb0-34107be38cc5/tpm2,mode=0600
  swtpm: SWTPM_NVRAM_Lock_Dir: Could not open lockfile: Permission denied

  # After fix
  $ sudo swtpm socket --print-states --tpmstate dir=/var/lib/libvirt/swtpm/ab930d41-1600-4987-bfb0-34107be38cc5/tpm2,mode=0600
  { "type": "swtpm", "states": [] }

  [Where problems could occur]

  This change will provide swtpm greater access to
  /var/lib/libvirt/swtpm/. So if malicious code were to exist within
  swtpm, it would be able to modify and write to files in the directory
  created by other processes.

  Likewise, with a change to the apparmor profile, a conflict will occur
  on update for users that modified their profile directly.

  [Other Info]
   
  The issue was fixed in oracular in 0.7.3-0ubuntu7.

  [Original Description]

  Based on the upstream comment here -
  https://github.com/stefanberger/swtpm/issues/852#issuecomment-2156039973
  - users are having issues with apparmor denials when attempting to use
  TPM2 NVRAM state lockfiles. This is due to the file not being owned by
  the swtpm user. The issue is fixed by allowing write access to non-
  owned lock files in /var/lib/libvirt/swtpm/. This was fixed upstream
  in my pr here - https://github.com/stefanberger/swtpm/pull/868

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




More information about the foundations-bugs mailing list