The Patching Friars' AlmanacA calendar of CVE saints

April 22

Pack2TheRootHoly card for pack2theroot, generated with AI (Claude, Anthropic) for the Lunario dei Frati Patchatori.CC BY-NC-SA 4.0 root Pack2TheRoot SARCINA AD RADICEM
🤖 Image and text generated with AI

⬇ Download holy card: ·

Embed on your site

Saint Pack2TheRoot, Who Shipped Parcels to Root

Patron of package managers, checks made a moment too early, and distributions that install without asking.

Life

On 22 April 2026 Telekom Security revealed Pack2TheRoot, a race condition in PackageKit, the service that installs software on many Linux distributions. Between the moment a transaction was authorised and the moment it ran, its options could change: an unprivileged local user could thus get packages installed as root, without authenticating. The flaw affected versions 1.0.2 through 1.3.4.

Prayer

O Saint Pack2TheRoot, who delivers to root parcels nobody ordered, let our services reread the order at dispatch time. Amen.

How to celebrate

Celebrated by updating PackageKit to 1.3.5 and checking who can really install what.

Signed for at noon, swapped by one.

Technical record

Disclosed on
April 22 2026
CVE
CVE-2026-41651
CVSS
8.8
Product
PackageKit · PackageKit

PackageKit is a a D-Bus abstraction layer that allows the user to manage packages in a secure way using a cross-distro, cross-architecture API. PackageKit between and including versions 1.0.2 and 1.3.4 is vulnerable to a time-of-check time-of-use (TOCTOU) race condition on transaction flags that allows unprivileged users to install packages as root and thus leads to a local privilege escalation. This is patched in version 1.3.5. A local unprivileged user can install arbitrary RPM packages as root, including executing RPM scriptlets, without authentication. The vulnerability is a TOCTOU race condition on `transaction->cached_transaction_flags` combined with a silent state-machine guard that discards illegal backward transitions while leaving corrupted flags in place. Three bugs exist in `src/pk-transaction.c`: 1. Unconditional flag overwrite (line 4036): `InstallFiles()` writes caller-supplied flags to `transaction->cached_transaction_flags` without checking whether the transaction has already been authorized/started. A second call blindly overwrites the flags even while the transaction is RUNNING. 2. Silent state-transition rejection (lines 873–882): `pk_transaction_set_state()` silently discards backward state transitions (e.g. `RUNNING` → `WAITING_FOR_AUTH`) but the flag overwrite at step 1 already happened. The transaction continues running with corrupted flags. 3. Late flag read at execution time (lines 2273–2277): The scheduler's idle callback reads cached_transaction_flags at dispatch time, not at authorization time. If flags were overwritten between authorization and execution, the backend sees the attacker's flags.

Sources: github.security.telekom.com

Also remembered today

Shortcuts: ← → to move, D day, W week, M month, T today.

📅 Add to your calendar

SaintsGoogle CalendarApple, Outlook (.ics)

Observances (feasts, scourges and miracles)Google CalendarApple, Outlook (.ics)

In Google Calendar you can also paste the URL in Settings → Add calendar → From URL. The first sync can take a few hours.