{"id":"CVE-2026-55888","kind":"vulnerability","aliases":["CVE-2026-55888"],"related":[],"title":"XDG Desktop Portal: sandboxed apps can write arbitrary new files on host","description":"XDG Desktop Portal is a desktop integration portal. Prior to version 1.22.1, malicious sandboxed applications can use the FileChooser.SaveFiles method to gain arbitrary file access to non-existing files on the host (limited to files the user has access to). The FileChooser.SaveFiles method takes optional filenames which get appended to the selected directory by backends. The backends are supposed to check that the file does not exist yet. The filenames are not validated by the frontend and also not by common backends. This issue has been patched in version 1.22.1.","summary":"A sandboxed Linux application can call the FileChooser.SaveFiles portal method with crafted filenames to create files at arbitrary paths the user can write to. Because the names are not validated, the sandbox boundary for file creation is bypassed.","severity":"high","cvss":8.8,"epss":0.00515,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["desktop-linux","flatpak","infrastructure","linux","xdg-desktop-portal"],"not_affected_if":["no-flatpak-or-snap-apps"],"how_to_check":"Run xdg-desktop-portal --version and check whether it is below 1.22.1.","fix":"Upgrade xdg-desktop-portal to 1.22.1 or later.","status":"open","published_at":"2026-10-23T13:17:10+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","triaged_at":"2026-10-23T22:31:07+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"infrastructure","confidence":0.6,"triage":{"at":"2026-10-23T22:31:07Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade xdg-desktop-portal to 1.22.1 or later.\nunknown","reach":"local","title":"XDG Desktop Portal: sandboxed apps can write arbitrary new files on host","impact":"medium","summary":"A sandboxed Linux application can call the FileChooser.SaveFiles portal method with crafted filenames to create files at arbitrary paths the user can write to. Because the names are not validated, the sandbox boundary for file creation is bypassed.","category":"infrastructure","who_cares":["linux","flatpak","desktop-linux","xdg-desktop-portal"],"confidence":0.6,"needs_auth":"no","worst_case":"sandboxed app creates files anywhere the user can write","analyst_note":"Confirm the exact fixed version and whether user interaction (a save dialog) is required; check the upstream advisory linked from the NVD entry.","how_to_check":"Run xdg-desktop-portal --version and check whether it is below 1.22.1.\nunknown\nunknown","needs_analyst":true,"not_affected_if":["no-flatpak-or-snap-apps"],"user_interaction":"unknown","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000512,"input_tokens":3001,"output_tokens":424,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-55888':15A,18A '1.22.1':78C,157C 'access':91C,106C 'also':145C 'app':5A 'append':116C 'applic':32B,81C 'arbitrari':8A,46B,89C 'backend':122C,124C,149C 'boundari':61B 'bypass':66B 'call':34B 'check':128C 'common':148C 'craft':40B 'creat':43B 'creation':64B 'cve':13A,16A 'desktop':2A,20B,27B,68C,72C 'desktop-linux':19B 'directori':120C 'exist':95C,134C 'file':10A,44B,63B,90C,96C,102C,131C 'filechooser.savefiles':36B,85C,109C 'filenam':41B,113C,137C 'flatpak':22B 'frontend':143C 'gain':88C 'get':115C 'host':12A,99C 'infrastructur':23B 'integr':73C 'issu':151C 'limit':100C 'linux':21B,24B,31B 'malici':79C 'method':38B,86C,110C 'name':55B 'new':9A 'non':94C 'non-exist':93C 'option':112C 'patch':154C 'path':47B 'portal':3A,28B,37B,69C,74C 'prior':75C 'sandbox':4A,30B,60B,80C 'select':119C 'suppos':126C 'take':111C 'use':83C 'user':49B,104C 'valid':58B,140C 'version':77C,156C 'write':7A,51B 'xdg':1A,26B,67C 'xdg-desktop-port':25B 'yet':135C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T13:17:10+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-55888","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55888","severity":null,"published_at":"2026-10-23T13:17:10+00:00","modified_at":"2026-10-23T19:54:04+00:00","first_seen_at":"2026-10-23T21:57:33+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-55888","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-55888","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}