Repository navigation
Description
This week's sandbox re-pin is held rather than taken: bubblewrap 0.9.0-1ubuntu0.3 is a revert of the CVE fix that 0ubuntu0.2 shipped, not a fix on top of it.
bubblewrap (0.9.0-1ubuntu0.3) noble-security; urgency=medium
* SECURITY REGRESSION: Incompatibility with Flatpak (LP: #2167621)
- debian: Drop CVE-2026-87766
CVE-2026-87766 is improper link resolution during sandbox setup, and bubblewrap is tend's boundary — so this is the one package where taking the newer version moves the security posture backwards. The incompatibility that motivated the revert is with Flatpak, which nothing here uses. Holding is the right pin for tend on its merits, not only the cautious one.
What the hold parks
The four constants in shared/steps/install-sandbox-runtime.sh move together or not at all, and 0ubuntu0.2 is gone from every pocket at any later instant — so the instant cannot move without taking 0.3:
| Instant | noble |
noble-updates |
noble-security |
|---|---|---|---|
2026-09-17T18:00:00Z (pinned) |
0.9.0-1build1 | 0.9.0-1ubuntu0.2 | 0.9.0-1ubuntu0.2 |
2026-09-20T09:00:00Z |
0.9.0-1build1 | 0.9.0-1ubuntu0.3 | 0.9.0-1ubuntu0.3 |
npm --before reads the same instant, so the parked set also holds sandbox_runtime_version at 0.0.76. SRT 0.0.77 published 2026-09-18T22:13:36Z, after the pinned instant, and cannot be taken while it stands. socat and ripgrep did not move this week, so nothing else is waiting.
The cost of holding, and what bounds it
A GitHub-hosted runner is rolled back onto the pin, which still resolves — snapshots are immutable, so 0ubuntu0.2 stays installable from the pinned instant indefinitely. A self-hosted runner that has already taken 0.3 fails its job instead, by design:
This runner is ahead of Tend's pin (…) and Tend does not downgrade a self-hosted host.
So the hold is free for hosted runners and breaking for self-hosted noble runners that track security updates. That is what makes this a decision rather than a standing preference.
The decision
Canonical's revert is presumably temporary — the CVE is real and the Flatpak breakage is the kind of thing a 0ubuntu0.4 fixes properly. The weekly sweep re-resolves on its own, so doing nothing takes the fix back the week it returns, with SRT 0.0.77 folded into the same PR.
Worth an explicit call only if that wait is too long:
- Keep holding — the sandbox keeps the CVE-2026-87766 fix; self-hosted noble runners stay broken; SRT stays at
0.0.76. - Take
0.3— unblocks self-hosted runners and SRT, and drops a sandbox-setup CVE fix from every consumer's boundary. Note that tend already carries the0o755container change from fix(sandbox): make the agent workspace container readable, not traverse-only #1277 that0.2forced, so0.3needs no code change either way; the choice is purely the CVE.
I'll re-check next week and report either way rather than letting the hold go quiet.
Activity
chore: bump claude-code to 2.1.278 (#1330)
tend-agent commentedon Sep 21, 2026
The hold no longer has a subject: #1354 replaced Anthropic Sandbox Runtime with a hardened systemd unit and deleted
shared/steps/install-sandbox-runtime.shalong with it, so the four constants this issue parked are gone from the tree. That shipped in 0.2.14. Closing as obsolete rather than deciding between the two options — neither is available to take.Checked on
4b07033: noapt-getremains anywhere undershared/,claude/,codex/, orproxy/;git grepforsandbox_runtime_version, asnapshot.ubuntuinstant,noble-security, or any0ubuntu0string returns nothing outsideCHANGELOG.md; and the only survivingbubblewrapmentions are the two copies of the example config, where it appears as an illustration of what cannot start inside the sandbox, not as a package tend installs. The boundary is nowlaunch_agent.py'ssystemd-rununits.Two consequences worth recording, since they were this issue's stakes rather than its mechanism:
docs/security-model.mdis where that belongs, not a re-opened pin hold.This was last week's weekly sweep promising a re-check; this is it.