senn-techsenn-tech
Security
Security2026-10-16· Von Franz Senn

Podman-CVE-2026-94603: Eine Image-Annotation schaltet die Sandbox ab

Die Podman-Maintainer haben am 29. September 2026 in den Versionen 5.8.8 und 6.1.3 eine Funktion entfernt, statt sie zu patchen. Dahinter liegt CVE-2026-94603: podman run akzeptierte jedes Image, das eine bestimmte Annotation mitbringt, als Checkpoint und stellte den Container mit den Sicherheitswerten des Images her. Die Einschränkungen, die der Betreiber auf der Kommandozeile gesetzt hatte, galten dann nicht mehr. Die öffentliche Advisory des Projekts kam am 15. Oktober 2026, mit CVSS 10.0.

Podman-Logo
Podman wird von RHEL, Fedora, Debian und Ubuntu als Paket geführt. (Quelle: Wikimedia Commons, Datei Podman-logo-orig.png, Lizenz Apache 2.0, Podman)

Der Fehler ist nicht neu. Die Funktion wurde mit Podman 4.4.0 eingeführt, veröffentlicht am 1. Februar 2023. Von dort bis 5.8.7 und bis 6.1.2 ist jede Fassung betroffen, die das Projekt selbst in seiner Advisory nennt.

Was beim podman run passiert

Seit 4.4.0 ließ sich ein mit podman container checkpoint erzeugter Zustand als Image in eine Registry legen und auf einer anderen Maschine wieder ausführen. Für die Übertragung zwischen Systemen ist das praktisch, und genau dort sitzt das Problem. Die Erkennung läuft über eine einzige Image-Annotation, io.podman.annotations.checkpoint.runtime.name. Ist sie gesetzt, behandelt podman run das Image als Checkpoint.

Der Revert-Commit vom 28. September 2026 (Autor Matt Heon) zeigt die Stelle im Quelltext. Im Run-Pfad wird geprüft, ob die Annotation im Image steht, und wenn ja, ruft Podman intern ContainerRestore auf, bevor irgendwelche Nutzeroptionen verarbeitet werden. Der Kommentar im Commit ist deutlich: This commit has been identified as a serious security issue. Ein --cap-drop=ALL auf einem Checkpoint-Image wird ignoriert, die Capability-Menge kommt aus dem Image. Das Advisory nennt als Folge schwächere Sandbox-Einstellungen und Capabilities nach Wahl des Images.

Rootless-Container sind nach Angabe des Projekts nicht betroffen, weil Checkpoint und Restore in diesem Modus gar nicht unterstützt werden. Das ist die einzige gute Nachricht an der Stelle, und sie ist immerhin eine strukturelle.

Vom fremden Image zur SandboxImage aus derRegistrybringt die Annotationio.podman.annotations.checkpoint.runtime.namepodman runerkennt einCheckpoint-Image, nicht einnormales Imageinterner Restore-PfadContainerRestore stattErzeugung aus denNutzeroptionenOptionen desBetreibers--cap-drop=ALL und weitereswerden übergangenContainer läuftSandbox und Capabilitiesbestimmt das Image
Fünf Schritte, kein Fehler des Bedieners: Die Weiche wird im Image gestellt. Quelle: Advisory GHSA-2cvf-wqm6-wr9g und Revert-Commit 3721ff8 vom 28.09.2026. (Quelle: GitHub-Advisory GHSA-2cvf-wqm6-wr9g, Podman-Quelltext v5.8.7)

Zwei Bewertungen, zwei Vektoren

Der Maintainer und Red Hat kommen auf verschiedene Zahlen, und der Unterschied lohnt sich anzusehen, weil er die eigene Priorität erklärt.

Die CVE-Datenführung über die CNA GitHub (veröffentlicht am 13.10.2026, CWE-693 Protection Mechanism Failure) trägt CVSS 3.1 mit 10.0 und dem Vektor AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H. Dieselbe Lücke führt Red Hat mit 8.6 und dem Vektor CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H, eingestuft als Important und als CWE-15, mit public date 29.09.2026. Ubuntu nennt auf seiner CVE-Seite die 10.0 des Maintainers als cvss3, setzt die eigene Priorität aber auf medium. Die NVD führte am 16. Oktober noch keinen eigenen Datensatz zu der CVE (Anfrage gegen die NVD-Schnittstelle: HTTP 404).

Der Streitpunkt steckt in zwei Feldern: AV:N gegen AV:L und UI:N gegen UI:R. Der Maintainer rechnet mit einem Angreifer, der ein Image in eine Pipeline bringt, ohne selbst auf dem Zielsystem zu sitzen. Red Hat zählt den Menschen oder den Automatisierungsjob, der das Image startet, als notwendige Bedingung und schreibt die Bedingung ausdrücklich dazu: Ausnutzung verlangt, dass ein Betreiber oder ein Workflow ein ungeprüftes Image startet; Umgebungen, die nur gesichtete Images aus vertrauenswürdigen Registries ausführen, bleiben mit reduziertem Risiko. Auf die Frage, ob eine Gegenmaßnahme existiert, antwortet Red Hat mit einem klaren Nein: keine verfügbare, die ihre Kriterien erfüllt.

Beide Zahlen sind Primärangaben, keine davon ist eine Messung. Wer für seine Firma entscheidet, kann die Differenz direkt übersetzen: Stehen CI-Läufe oder Selbstbedienungsumgebungen, in denen jemand ein fremdes Image startet, dann liegt die Wirkung näher an der 10.0. Läuft nur der eigene Build aus der eigenen Registry, ist Red Hats Lesart die realistischere.

Zwei Bewertungen derselben LückeMaintainer (CNA)10 · AV:N / UI:N / S:C, CWE-693Red Hat8.6 · AV:L / UI:R / S:C, CWE-15, Important010
Zwei eingetragene Werte, die NVD führt die CVE noch nicht (HTTP 404 am 16.10.2026). Die 10.0 beschreibt die Wirkung im ungünstigsten Pfad, die 8.6 dieselbe Wirkung mit dem Start durch einen Betreiber als Bedingung. Ubuntu führt die CVE mit eigener Priorität medium. (Quelle: CVE-Record (CNA GitHub), Red Hat Security Data, Ubuntu-CVE-Seite, abgerufen 16.10.2026)

Was die Distributoren geliefert haben

Upstream ist die Sache seit dem 29. September erledigt, die aktuellen Zweige sind 5.8.9 und 6.1.4 (beide 12.10.2026). In den Betrieben liegt der Stand weiter zurück. Die folgende Tabelle haben wir am 16. Oktober bei den Distributoren direkt gelesen.

ZweigGemessener StandStatus
Debian 13 (trixie)5.4.2+ds1-2verwundbar, Fix nur in sid (5.8.6+ds1-3)
Debian forky5.8.6+ds1-2verwundbar
UbuntuCVE gelistet, cvss3 10.0, Priorität mediumStatus je Release in der gelesenen API nicht enthalten
Fedora 43 und 44podman-5.8.9-1 im Testing seit 14.10.noch kein stabiles Update
Fedora 45podman-6.1.4-1 im Testing seit 13.10.noch kein stabiles Update
RHEL 8, 9, 10podman auf Affectedkeine Errata für die podman-Pakete
Red Hat Hardened Imagespodman-main-6.1.2-1.1.hum1RHSA-2026:74178 (01.10.), dann 6.1.3-1.hum1 (RHSA-2026:74861, 02.10.)
Red Hat Quay 3.12quay/quay-rhel8:1791314514RHSA-2026:79546 (08.10.)
OpenShift 4podman auf Affectedoffen

Debian führt trixie im Security-Tracker als verwundbar, gefixt ist der Stand nur in sid. Wer Debian 13 im Server betreibt, hängt also an einem Zweig, der nicht gepatcht wird. Red Hat listet podman auf RHEL 8, 9 und 10 sowie auf OpenShift 4 als Affected; die vorhandenen Meldungen betreffen die Hardened Images und Quay. Bei Fedora stehen die Aktualisierungen seit dem 13. und 14. Oktober im Testing. SUSE war aus diesem Container nicht erreichbar (HTTP 000, auch mit Browser-User-Agent), dazu sagen wir nichts.

Der Blick in unsere eigene Flotte

Erreichte Hosts nach OS-Zweig, 16.10.2026Alpine 3.2311 · Podman nirgends installiertUbuntu 26.046 · Kandidat 5.7.0+ds2-3build1Ubuntu 24.042 · Kandidat 4.9.3+ds1-1ubuntu0.2+esm3Debian 132 · Kandidat 5.4.2+ds1-2+b2012
Gelesen am 16.10.2026 per ssh über hostname, podman --version und die Paketverwaltung. 21 von 30 angefragten Hosts waren erreichbar, sechs Proxmox-Knoten und pbs1 antworteten nicht auf TCP 22. Auf 20 der 21 Hosts läuft Docker mit zusammen 133 laufenden Containern. Podman ist auf keinem der Hosts installiert. (Quelle: Eigene Messung, 16.10.2026)

Der Kandidat der Paketverwaltung entscheidet, was ein apt install podman oder ein Update auf einem unserer Hosts tatsächlich liefern würde. Ubuntu 24.04 brächte 4.9.3, Ubuntu 26.04 brächte 5.7.0, Debian 13 brächte 5.4.2. Alle drei liegen innerhalb der betroffenen Spanne. Auf dem geprüften Alpine-3.23-Host lieferte das Repo-Verzeichnis keine Zeile für podman, dazu messen wir nicht weiter nach.

Nachspielen konnten wir den Fehler nicht. Es gibt in unserem Bestand kein Podman und auf dem geprüften Host auch kein skopeo, wir hätten also erst eine verwundbare Umgebung bauen müssen. Der Mechanismus stammt deshalb im ganzen Beitrag aus dem Quelltext und dem Advisory, unser Beitrag ist die Einordnung für den Betrieb. Docker auf unseren 20 Hosts ist nach den Quellen nicht betroffen: Die fehlerhafte Weiche steht im Run-Pfad von Podman, und der Fix ist ein Revert in diesem Zweig.

Unser Quellenpool nannte diese CVE beim nächtlichen Lauf um 05:45 genau einmal, nämlich die GitHub-Advisory selbst. Von 324 aktiven Quellen hatten 309 funktioniert, zehn sammeln seit mindestens zwei Wochen Fehler.

Was weitere Quellen sagen

Amazon Linux führt die CVE in seiner Datenbank mit CVSS 8.6, also wie Red Hat und nicht wie der Maintainer. Sicherheitsportale wie securityonline und thehackerwire haben die Meldung wiederholt, ihre Texte nennen teils andere Spannen oder Zahlen als das Advisory, und wir haben sie deshalb nicht als Quelle benutzt. Eine Diskussion in Foren haben wir gesucht (Hacker News, Stand 16.10.2026) und zu dieser CVE nicht gefunden. Das einzige Podman-Thema der Woche dort war die Vorstellung eines Deploy-Werkzeugs für Docker und Podman. Wer die Frage in der Praxis diskutieren will, findet sie im Advisory des Projekts.

Was Betreiber jetzt prüfen

podman --version zuerst. Betroffen sind laut Advisory die Spannen 4.4.0 bis unter 5.8.8 und 6.0.0 bis unter 6.1.3. Ein Rootless-Betrieb ist nach der Aussage des Projekts gegen genau diesen Weg gefeit, weil es dort kein Checkpoint und keinen Restore gibt; auf Servern, deren Distro-Paket noch hängt, ist das der Hebel, der heute wirkt, sofern die Anwendung mitmacht.

Die zweite Zeile ist die Frage, wer die Images baut. Ein Image aus einer Registry ist ein Programm, das wir starten, und hier bringt es sogar die Sandbox-Parameter mit. Wer CI-Läufe mit Images aus Pull-Requests fährt, sollte diese Lücke als weiteren Grund nehmen, fremde Images in einer eigenen, streng gekapselten Stufe zu behandeln; unser Muster dafür steht in Vier Dateien vor der Installation.

Die dritte Zeile ist der Prüfschritt selbst. Podman prüft die Annotation nicht von allein, das Advisory sagt das ausdrücklich, also bleibt nur ein Scan vor dem Start. Das Feld heißt Annotations und ist im Inspect-Auswurf des Projekts enthalten, belegt über den Quelltext und den zugehörigen e2e-Test der Version 5.8.7:

podman image inspect --format '{{ json .Annotations }}' <image> \
  | grep -c io.podman.annotations.checkpoint

Ein Treffer heißt: Image ablehnen. Registry-seitig, also vor dem Pull, braucht es denselben Scan als Policy. Die nimmt uns kein Distributor ab.

Bleibt das Update. Upstream ist es seit zweieinhalb Wochen draußen, bei Debian stable und RHEL liegt es weiter nicht im Paket. Wer dort nicht auf Rootless umstellen kann, bleibt bis auf Weiteres an einer eigenen Übersetzung aus dem Quelltext hängen. Unbequem, und die ehrliche Antwort auf die Frage, was eine CVSS-10.0 kostet, wenn der Distributor sie noch nicht ausliefert.

So haben wir gemessen

Am 16. Oktober 2026 haben wir 30 Hosts per ssh angefragt, 21 antworteten. Je Host haben wir hostname und podman --version gelesen, den Kandidaten der Paketverwaltung über apt-cache policy podman beziehungsweise die Alpine-Paketsuche und die laufenden Container über docker ps. Podman war auf keinem erreichten Host installiert, auf 20 der 21 lief Docker mit zusammen 133 Containern. Die Tabelle der Distributoren stammt aus deren Datenbanken vom selben Tag, Bodhi (Fedora) steht hinter einem Bot-Schutz und lässt sich nur im Browser öffnen. Die Annotations-Prüfung haben wir nicht an einem verwundbaren System nachgespielt, weil keines vorhanden ist.

Weiterführende Quellen

Primärquellen

Distributoren und Kataloge

Community

  • Hacker News, Suche nach Podman im Oktober 2026: keine Diskussion zu CVE-2026-94603
Fragen?
Betrifft die Lücke auch Docker?+

Nach dem Stand der Quellen: nein. Die gelesene Code-Stelle sitzt im Run-Pfad von Podman (pkg/domain/infra/abi/containers.go), und der Fix ist ein Revert in diesem Podman-Zweig. Docker kennt den Pfad, ein Image als Checkpoint zu behandeln, nicht. Unser eigener Bestand läuft deshalb die Sache nicht: Auf 20 von 21 erreichten Hosts läuft Docker, Podman ist nirgends installiert.

Wird CVE-2026-94603 gerade ausgenutzt?+

Dafür haben wir keinen Beleg gefunden. Die CISA-Liste der aktiv ausgenutzten Schwachstellen (Katalogstand 2026.10.15, 1.746 Einträge, abgerufen am 16.10.) enthält keinen Podman-Eintrag, und in den von uns gelesenen Quellen steht kein Ausnutzungsbericht. Die 10.0 ist eine Bewertung der Wirkung, kein Nachweis einer Kampagne.

Reicht Rootless-Betrieb als Gegenmaßnahme?+

Für genau diesen Fehler ja, weil Checkpoint und Restore im Rootless-Modus nicht unterstützt werden und der Mechanismus damit nicht greift (Advisory des Projekts). Eine solche Umstellung ist aber ein Eingriff in den gesamten Container-Betrieb und kein Ersatz für das Update, sobald die Distributoren liefern.