---
id: "CVE-2026-55889"
kind: "vulnerability"
aliases: ["CVE-2026-55889"]
title: "XDG Desktop Portal: sandboxed apps can hijack clipboard and drag-and-drop data"
severity: "high"
cvss: 8.3
epss: 0.00365
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["desktop", "flatpak", "infrastructure", "linux", "xdg-desktop-portal"]
not_affected_if: ["no-sandboxed-apps", "no-xdg-desktop-portal"]
published_at: "2026-10-23T13:17:10+00:00"
first_seen_at: "2026-10-23T21:57:33+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-55889", "first_seen_at": "2026-10-23T21:57:33+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-55889", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# XDG Desktop Portal: sandboxed apps can hijack clipboard and drag-and-drop data

XDG Desktop Portal before 1.22.1 lets a malicious sandboxed app call FileTransfer.RetrieveFiles to redirect drag-and-drop and copy-paste data meant for other apps. Its access tokens come from GLib's Mersenne Twister PRNG, so an attacker who collects enough tokens can predict later ones.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `xdg-desktop-portal --version` and compare it with `1.22.1`.
- Check the installed package version with your distro's package manager (for example `rpm -q xdg-desktop-portal` or `dpkg -s xdg-desktop-portal`).

## Fix

- Upgrade xdg-desktop-portal to `1.22.1` or later.

## Timeline

- 2026-10-23T21:57:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-55889
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-55889

## From the sources

XDG Desktop Portal is a desktop integration portal. Prior to version 1.22.1, malicious sandboxed applications can use the FileTransfer.RetrieveFiles method to redirect drag-and-drop and copy-paste data targeted at other applications to itself. Some portals generate tokens which provide access to resources. The sharing of the token transfers access to the resource and is supposed to happen out of band. The tokens were generated with g_random_int or g_uuid_string_random, both of which use GLib's GRand based on the Mersenne Twister PRNG which created a stream of reproducible random numbers. By generating enough tokens, the state of the GRand can be recover and with it, the next tokens can be predictedinsufin. This issue has been patched in version 1.22.1.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
