Skip to content
These features should be available in Qubes OS 4.4! 🎉

Disable screenshots

The qubes-gnome-software-plugin disables screenshots before loading, due to security concerns.

Previously, in Qubes templates Gnome Software was not displaying screenshots, as it didn’t have internet connection. However, when integrating Gnome Software with Qubes, it needed access to the updates proxy for Flatpak support, causing it to have internet connection and download screenshots.

Gnome Software Screenshots

Gnome Software screenshots follow AppStream to get the metadata for each repository.

Data type

Appstream screenshots can be images or videos, both with restricted formats. Gnome Software supports both images and videos as screenshots.

ScreenshotsData typeNotes
ImagePNG [recommended], JPEG, WebP or JXLFedora, Debian and Flathub screenshots displayed in Gnome Software are all PNG.
VideoMatroska (.mkv) or WebM container and use VP9 or AV1 codecFedora, Debian and Flathub don't have videos in their appstream repos.

Sources

Screenshots are sourced from the following locations:

TemplateApplication SourcesLocal appstream software catalogImage URLs included
Fedoradnf (via packagekit)/usr/share/swcatalog/xml/http://dl.fedoraproject.org/pub/alt/screenshots/f43/
Fedora / DebianGnome web apps/usr/share/swcatalog/xml/urls related to each app’s website
Debianapt (via packagekit)/var/lib/swcatalog/yml/https://appstream.debian.org/media/trixie
Fedora / DebianFlathub (3rd party Flatpak)/var/lib/flatpak/appstream/flathub/https://dl.flathub.org/media/app/

Security Concerns

  • In Fedora, screenshots are sourced from an HTTP website
  • Screenshots from webapps are sourced from each project website
  • Screenshots are not cryptographically signed

Security mitigations

Only a few screenshot’s security mitgations were found do be addressed by Gnome Software.

Checking screenshots type.

URL validation when downloading screenshots.

GskPixbuf loading to check if screenshots are images and are not corrupted.

Solution

A simple Gnome Software plugin was created for Qubes integrations, where the refine_async plugin function clears screenshots from each application. This way, no screenshot is downloaded and the user can see a “No Screenshots” image instead.

The image below shows what this solution looks like from the user perspective:

Image