CVE-2026-3888: Ubuntu's Snap Sandbox Has a Ticking Time Bomb — Here's What You Need to Know

A high-severity vulnerability (CVSS 7.8) in Ubuntu Desktop 24.04+ allows any unprivileged local user to gain full root access. The exploit abuses a timing gap between snap-confine and systemd-tmpfiles — no memory corruption, no kernel exploit, just patience.

CVE-2026-3888: Ubuntu's Snap Sandbox Has a Ticking Time Bomb — Here's What You Need to Know

TL;DR

A high-severity vulnerability (CVSS 7.8) in Ubuntu Desktop 24.04+ allows any unprivileged local user to gain full root access. The exploit abuses a timing gap between two trusted system components — snap-confine and systemd-tmpfiles. Patch now.


What Happened?

Qualys Threat Research Unit just dropped a bombshell: default Ubuntu Desktop installations from 24.04 onward ship with a privilege escalation bug that's been hiding in plain sight.

The vulnerability, tracked as CVE-2026-3888, doesn't require any special permissions, no user interaction, and no exotic software. All it needs is patience — between 10 and 30 days, depending on your Ubuntu version.


The Two Components at Play

1. snap-confine

This is the setuid root binary that builds the sandbox before any snap application runs. It handles mount namespace isolation, cgroup enforcement, AppArmor policy loading, and seccomp filtering. Because it operates with elevated privileges at a critical trust boundary, any flaw here is a big deal.

2. systemd-tmpfiles

This utility manages the lifecycle of volatile directories like /tmp, /run, and /var/tmp — creating them at boot and cleaning out stale files on a timer. The cleanup schedule is the key to this exploit.


How the Attack Works

Here's the exploit chain, step by step:

Day 0:  Attacker logs in as unprivileged user
        ↓
Day 10-30: systemd-tmpfiles deletes /tmp/.snap (stale cleanup)
        ↓
Attacker: Recreates /tmp/.snap with malicious payloads
        ↓
Next snap launch: snap-confine bind-mounts the malicious
                  directory as root → arbitrary code execution
        ↓
Result: Full root access

The beauty — and danger — of this attack is its simplicity. No memory corruption. No kernel exploit. Just two legitimate system services stepping on each other's toes at the wrong time.

Property Value
VectorLocal
ComplexityHigh (time-dependent)
Privileges RequiredLow (any user)
User InteractionNone
ScopeChanged (escapes component boundary)
ImpactComplete (C:H / I:H / A:H)
CVSS Score7.8

Who's Affected?

Ubuntu Version Vulnerable snapd Patched Version
24.04 LTS< 2.73+ubuntu24.04.12.73+ubuntu24.04.1
25.10 LTS< 2.73+ubuntu25.10.12.73+ubuntu25.10.1
26.04 LTS (Dev)< 2.74.1+ubuntu26.04.12.74.1+ubuntu26.04.1
Upstream snapd< 2.752.75

Legacy systems (16.04–22.04 LTS): Not vulnerable in default configurations, but Canonical recommends patching as a precaution against non-default setups.


Why This Matters More Than the CVSS Score Suggests

Yes, the attack complexity is "High" because of the 10–30 day waiting period. But consider this:

  • Shared servers and cloud instances often have uptimes measured in months or years. The cleanup timer will fire.
  • Multi-user environments (universities, development teams, CI/CD runners) are prime targets — any user on the box can exploit this.
  • The exploit is deterministic. Unlike race conditions that need microsecond timing, this one just requires patience and a calendar.
  • No detection signatures exist for the attack in progress — an attacker waiting for cleanup looks identical to a normal user.

Bonus: A Second Bug in uutils Coreutils

While investigating CVE-2026-3888, Qualys also found a race condition in the uutils coreutils package (a Rust rewrite of GNU utilities) shipping with Ubuntu 25.10. The rm utility could be exploited via symlink attacks during root-owned cron executions, leading to arbitrary file deletion as root.

This was caught and fixed before Ubuntu 25.10's public release — the default rm was reverted to GNU coreutils. A reminder that rewriting critical tools in new languages doesn't automatically eliminate all vulnerability classes.


What You Should Do Right Now

1. Patch Immediately

sudo snap refresh snapd

Verify your version:

snap version

2. Audit Temporary Directory Permissions

ls -la /tmp/.snap*

If this directory exists and is owned by a non-root user, investigate immediately.

3. Monitor for Suspicious Activity

Watch for unexpected recreation of /tmp/.snap directories:

inotifywait -m -r /tmp/.snap 2>/dev/null

4. Consider Hardening tmpfiles Configuration

cat /usr/lib/tmpfiles.d/tmp.conf

5. Track This CVE

Stay updated on CVE-2026-3888 and get real-time alerts when new information drops:
Track CVE-2026-3888 on VulnTracker →


The Bigger Picture

CVE-2026-3888 is a textbook example of privilege chaining — where two individually safe components create a dangerous interaction. Neither snap-confine nor systemd-tmpfiles has a bug in isolation. The vulnerability exists in the gap between them.

This pattern is increasingly common in modern Linux distributions, where dozens of privileged services interact through shared filesystem state. As systems grow more complex, these "interaction vulnerabilities" will only become more frequent.

The question isn't whether your system has these gaps. It's whether you'll find them before someone else does.