[Bug 1989100] Re: AppArmor DENIES swtpm pid file access
Lena Voytek
1989100 at bugs.launchpad.net
Tue Oct 25 20:51:54 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:
+
+ # sudo apt update && sudo apt dist-upgrade -y
+ # sudo apt install virt-manager swtpm
+
+ > Open virt-manager
+ > Click New Virtual Machine button
+
+ 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.
+ 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 libvirt package in Ubuntu:
Confirmed
Status in swtpm package in Ubuntu:
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 Windows 11 iso in
~/Win11.iso:
# sudo apt update && sudo apt dist-upgrade -y
# sudo apt install virt-manager swtpm
> Open virt-manager
> Click New Virtual Machine button
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
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/ubuntu/+source/libvirt/+bug/1989100/+subscriptions
More information about the foundations-bugs
mailing list