Home/ Blog/ Security news/ Article
Blog · Security news

containerd CVE-2026-53493: Moderate Image-Pull DoS, Update Now

containerd CVE-2026-53493 lets a crafted OCI image burn CPU and memory during image pull, before any container starts. Moderate, not yet exploited. Update.

Overloaded port crane buckling under a tangled branching stack of shipping containers

The danger in CVE-2026-53493 lands before your container ever runs. containerd, the runtime that pulls and starts containers under most Kubernetes clusters and Docker installs, can be pushed into heavy CPU and memory use just by pulling a crafted image. The traversal that reads the image's structure happens during the pull, so a poisoned image stalls container creation and, at larger sizes, can drag the node itself toward instability. It is rated moderate, CVSS 6.9, and as of writing there is no public exploit and no sign of exploitation in the wild. The fix is out. Who actually needs to hurry is the more useful question.

What the flaw does

CVE-2026-53493 is a denial-of-service (DoS) in how containerd parses an image's OCI index, the small graph that points a pulled image at its manifests and layers. A crafted index can branch into an enormous or deeply layered tree of descriptors, and containerd walks that tree without firm limits on depth, width, or repeated entries. Reading the structure alone burns excess CPU and memory during PullImage, before any container starts.

containerd's own security advisory describes it as runaway processor and memory use, with long waits while a container is being created and enough pressure to threaten the node or the runtime once the input grows large. The CVE record scores it CVSS 6.9, an availability-only impact with no effect on confidentiality or integrity. Credit goes to Jakub Ciolek of ElevenLabs and a researcher who goes by jlgore.

containerd branchAffected versionsFixed in
1.7.xbelow 1.7.361.7.36
2.0.x2.0.0 to 2.0.122.0.13
2.1.x and 2.2.x2.1.0 to 2.2.82.2.9
2.3.x2.3.0 to 2.3.52.3.6
2.4.x2.4.02.4.1
Affected and fixed containerd releases for CVE-2026-53493. Source: containerd advisory GHSA-pg57-6jwg-q645.

Where the risk actually concentrates

A denial-of-service that needs a malicious image is not a uniform risk across every containerd host. It concentrates wherever you pull images you did not build and cannot vouch for. Three settings stand out:

  • Multi-tenant clusters where users or teams schedule workloads from their own image references.
  • Continuous-integration and build runners that pull arbitrary base images or user-submitted Dockerfiles on every job.
  • Registry mirrors and pull-through caches that proxy public registries into your environment.

If every image on your nodes comes from a registry you own and control, your exposure is low, and patching is routine hygiene rather than an emergency. If any node pulls from the open internet or from tenants you do not trust, treat this with more urgency. A single poisoned reference can tie up a node's resources during the pull, which is a noisy-neighbor problem wearing a security bug's clothes. Container isolation flaws like a recent containerd-adjacent escape get the headlines; resource-exhaustion bugs like this one get ignored until a node falls over. Clusters that let outside inputs drive deployments carry the same shape of exposure behind an unauthenticated Argo CD flaw we covered earlier.

How you would know

Patching closes the hole. It does not tell you whether someone already aimed a heavy image at a node in the window before you updated. The symptom is distinctive because the damage happens during the pull, not at runtime: pods that sit in ContainerCreating far longer than the image size justifies, containerd chewing CPU or climbing in memory as it pulls, and in the worst case an out-of-memory kill that restarts the daemon. Watch for that pattern on nodes that pull from untrusted sources.

Node-side signs of a pull-time resource stall
# Pods stuck creating far longer than image size explains
kubectl get pods -A --field-selector=status.phase=Pending
kubectl describe pod <pod> | grep -A2 "Pulling image"
# containerd under pressure on the node during a pull
journalctl -u containerd --since "15 min ago" | grep -Ei "deadline|oom|killed"
systemctl status containerd

The pattern worth noticing

This is the second image-triggered resource-exhaustion fix in containerd's recent cycle. In June, CVE-2026-47262 let a crafted image exhaust memory through unbounded group parsing and force an out-of-memory kill of the daemon. Now CVE-2026-53493 does something close through the index graph during the pull. The common thread is that a container image is untrusted input, and containerd keeps finding parsing paths that read that input, before execution, without hard limits. If you have leaned on the idea that an image is inert until it runs, these two say otherwise. The parser is attack surface, and it runs first. It is a quieter version of a lesson shared components keep teaching, from a denial-of-service in a widely-used Struts plugin to a patch gap in a common npm library.

Patch, then tighten what you pull

Update containerd to the fixed release on your branch: 1.7.36, 2.0.13, 2.2.9, 2.3.6, or 2.4.1. If you run Docker or a managed Kubernetes distribution, the containerd version is bundled, so take the platform update that carries the fixed build rather than patching containerd by hand. containerd lists no workaround other than upgrading. Until the fix is in place, restrict pulls to registries you trust and hold off on pulling arbitrary or user-supplied images. On multi-tenant and CI systems, that restriction is the real interim control, because those are the paths a crafted image reaches you through.

Moderate severity does not mean ignore it. It means fix it on your normal cycle, unless you pull from the open internet or from tenants you do not control, in which case it is today's job.

Topics

Frequently asked questions

Is CVE-2026-53493 being actively exploited?

No public exploit or in-the-wild exploitation has been reported as of September 25, 2026, and it is not in CISA’s Known Exploited Vulnerabilities catalog. containerd rates it Moderate, CVSS 6.9. It is an availability flaw, a denial-of-service, not code execution.

Which containerd versions are affected and fixed?

Affected: 1.7.x below 1.7.36, 2.0.0 through 2.0.12, 2.1.0 through 2.2.8, 2.3.0 through 2.3.5, and 2.4.0. Fixed in 1.7.36, 2.0.13, 2.2.9, 2.3.6, and 2.4.1. Docker and Kubernetes users receive it through their bundled containerd build.

How does the attack work?

Per containerd’s advisory, a crafted OCI image index branches into a huge or deeply layered tree of descriptors. During image pull, containerd walks it without firm limits on depth, width, or repeated entries, so it burns excess processor and memory capacity before the container ever runs.

Am I exposed if I only run my own images?

Your risk is low if every image comes from a registry you control and trust. The flaw needs a malicious image, so exposure concentrates where untrusted images get pulled: multi-tenant platforms, CI and build runners, and mirrors that proxy public registries into your environment.

Is there a workaround if I cannot patch immediately?

containerd lists no workaround other than upgrading. Until you update, pull images only from trusted, known registries and avoid pulling arbitrary or user-supplied images. Watch for pods stuck in ContainerCreating and containerd memory spikes as an early warning.

How does this differ from CVE-2026-47262?

Both are moderate, image-triggered denial-of-service bugs in containerd, fixed months apart. CVE-2026-47262 (June 2026) exhausts memory through unbounded group parsing and can crash the daemon; CVE-2026-53493 (September) amplifies resource use through a crafted OCI index graph during the pull.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.