[Bug 1989100] Re: AppArmor DENIES swtpm pid file access
Lena Voytek
1989100 at bugs.launchpad.net
Wed Nov 23 14:47:59 UTC 2022
** Description changed:
[Impact]
When attempting to set up a vm with libvirt using swtpm in Kinetic,
swtpm's apparmor profile will deny access to the pid file in
/run/libvirt/qemu/swtpm/.
The fix for this issue should be backported to Kinetic because it blocks
all users attempting to set up a libvirt TPM vm with an error.
This bug is fixed by removing the "owner" tag from the line "owner
/run/libvirt/qemu/swtpm/*.pid rwk," allowing libvirt-created pid files
to be used.
[Test Plan]
- The fix can be tested using virt-manager Windows 11 iso in ~/Win11.iso:
+ The fix can be tested using virt-manager and an os using TPM:
# sudo apt update && sudo apt dist-upgrade -y
# sudo apt install virt-manager swtpm
- > Open virt-manager
- > Click New Virtual Machine button
+ Create a vm in virt-manager and on the last page
- Step 1:
- > Select "Local install media (ISO image or CDROM)
- > Click Forward
-
- Step 2:
- > Click Browse and find Windows 11 iso
- > Select "Automatically detect from the installation media / source"
- > Click Forward
-
- Step 3:
- > Use >= 4096 MiB for Memory
- > Use >= 2 CPUs
- > Click Forward
-
- Step 4:
- > Select "Enable storage for this virtual machine"
- > Use >= 70 GiB for storage size
- > Click Forward
-
- Step 5:
> Select "Customize configuration before install"
> Click Finish
-
- Config Screen:
- > For Overview > Firmware select UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.secboot.fd
- > For Boot Options select "SATA CDROM 1" and move it to top
> Click Add Hardware
> Select TPM with Model "TIS" and version 2.0
> Click "Begin Installation"
[Where problems could occur]
By removing the owner tag in line in the apparmor profile, any file with
a .pid extension in /run/libvirt/qemu/swtpm/ will be manipulatable by
swtpm. If swtpm were to act maliciously, it would have an overall
greater reach in this folder.
[Original Description]
libvirt 8.6.0-0ubuntu1
apparmor 3.0.7-1ubuntu1
One of our CI tests runs virt-install in a specific way that ultimately
fails with this in the error message:
- ERROR internal error: Could not get process id of swtpm
+ ERROR internal error: Could not get process id of swtpm
The journal has this message:
- audit: type=1400 audit(1662628523.308:121): apparmor="DENIED"
+ audit: type=1400 audit(1662628523.308:121): apparmor="DENIED"
operation="file_inherit" profile="swtpm"
name="/run/libvirt/qemu/swtpm/1-VmNotInstalled-swtpm.pid" pid=13944
comm="swtpm" requested_mask="w" denied_mask="w" fsuid=118 ouid=0
This is nested virtualization. If you need the exact invocation of virt-
install, I can dig that out.
--
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/1989100
Title:
AppArmor DENIES swtpm pid file access
Status in swtpm:
Unknown
Status in libvirt package in Ubuntu:
Confirmed
Status in swtpm package in Ubuntu:
In Progress
Status in libvirt source package in Kinetic:
Confirmed
Status in swtpm source package in Kinetic:
In Progress
Status in libvirt source package in Lunar:
Confirmed
Status in swtpm source package in Lunar:
In Progress
Bug description:
[Impact]
When attempting to set up a vm with libvirt using swtpm in Kinetic,
swtpm's apparmor profile will deny access to the pid file in
/run/libvirt/qemu/swtpm/.
The fix for this issue should be backported to Kinetic because it
blocks all users attempting to set up a libvirt TPM vm with an error.
This bug is fixed by removing the "owner" tag from the line "owner
/run/libvirt/qemu/swtpm/*.pid rwk," allowing libvirt-created pid files
to be used.
[Test Plan]
The fix can be tested using virt-manager and an os using TPM:
# sudo apt update && sudo apt dist-upgrade -y
# sudo apt install virt-manager swtpm
Create a vm in virt-manager and on the last page
> Select "Customize configuration before install"
> Click Finish
> Click Add Hardware
> Select TPM with Model "TIS" and version 2.0
> Click "Begin Installation"
[Where problems could occur]
By removing the owner tag in line in the apparmor profile, any file
with a .pid extension in /run/libvirt/qemu/swtpm/ will be
manipulatable by swtpm. If swtpm were to act maliciously, it would
have an overall greater reach in this folder.
[Original Description]
libvirt 8.6.0-0ubuntu1
apparmor 3.0.7-1ubuntu1
One of our CI tests runs virt-install in a specific way that
ultimately fails with this in the error message:
ERROR internal error: Could not get process id of swtpm
The journal has this message:
audit: type=1400 audit(1662628523.308:121): apparmor="DENIED"
operation="file_inherit" profile="swtpm"
name="/run/libvirt/qemu/swtpm/1-VmNotInstalled-swtpm.pid" pid=13944
comm="swtpm" requested_mask="w" denied_mask="w" fsuid=118 ouid=0
This is nested virtualization. If you need the exact invocation of
virt-install, I can dig that out.
To manage notifications about this bug go to:
https://bugs.launchpad.net/swtpm/+bug/1989100/+subscriptions
More information about the foundations-bugs
mailing list