Cloudanix VulnDB

CVE-2024-3056

Medium · 4.8

CVSS

4.8

EPSS

0.5%

Published

Aug 2, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A problem in container software lets a malicious container slowly fill up system memory that never gets released, eventually making the whole computer stop working.

Exploitation
Requires User Interaction
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
Application
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Allows a container sharing an IPC namespace to allocate unbounded IPC resources in /dev/shm; the resources persist after the container is OOM-killed because they are bound to the namespace, which is only released when the last container using it exits.

Why it matters to the business

Repeated restarts of the malicious container (via restart policies or attacker control) cause progressive memory exhaustion on the host, resulting in denial of service for other workloads and potential system instability until all containers sharing the namespace are stopped.

How an attack unfolds

An attacker authors a container image that, when started alongside a victim container sharing the same IPC namespace, repeatedly allocates large amounts of shared memory; the container is configured to restart automatically so that each OOM-killed instance leaves behind additional unreclaimed IPC objects until the host runs out of memory.

How to fix it

Upgrade Podman on Debian 13 to version 6.10.4-1 or later; after upgrade, restart all containers that share IPC namespaces and verify that no stale IPC resources remain in affected namespaces.

How to confirm the fix worked

Confirm Podman version is 6.10.4-1 or newer on all hosts; run 'podman version' and package manager queries; test by starting two containers with --ipc=shareable/--ipc=container: and monitoring /dev/shm usage and namespace cleanup on restart.

Typical attack path

  1. Identify or create a target container that shares IPC namespace with the victim workload
  2. Build and run a malicious container that allocates excessive IPC objects in /dev/shm
  3. Configure the malicious container with an automatic restart policy such as --restart=always
  4. Trigger repeated OOM kills of the malicious container while a non-malicious container keeps the namespace alive
  5. Observe cumulative memory consumption until the host becomes unresponsive

How to detect it

Review Podman and container runtime logs for repeated creation and OOM termination of containers that share IPC namespaces; inspect /proc/sysvipc and /dev/shm for growing numbers of objects tied to long-lived namespaces; correlate with high memory pressure events on the host.

What your security team should do

  • Immediately upgrade all Podman installations on Debian 13 to 6.10.4-1
  • Audit existing container definitions for use of --ipc=shareable or --ipc=container: combined with restart policies
  • Implement resource limits (memory and IPC) on all containers to reduce blast radius
  • Monitor container restart counts and /dev/shm usage in orchestration platforms

The record

A flaw was found in Podman. This issue may allow an attacker to create a specially crafted container that, when configured to share the same IPC with at least one other container, can create a large number of IPC resources in /dev/shm. The malicious container will continue to exhaust resources until it is out-of-memory (OOM) killed. While the malicious container's cgroup will be removed, the IPC resources it created are not. Those resources are tied to the IPC namespace that will not be removed until all containers using it are stopped, and one non-malicious container is holding the namespace open. The malicious container is restarted, either automatically or by attacker control, repeating the process and increasing the amount of memory consumed. With a container configured to restart always, such as `podman run --restart=always`, this can result in a memory-based denial of service of the system.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/containers/podman 0 No fix
Go github.com/containers/podman/v2 0 No fix
Go github.com/containers/podman/v3 0 No fix
Go github.com/containers/podman/v4 0 No fix
Go github.com/containers/podman/v5 0 No fix
Chainguard podman 0 5.6.2-r2
Chainguard podman-doc 0 5.6.2-r2
Debian:11 libpod 0 No fix
Debian:12 libpod 0 No fix
Debian:13 podman 0 No fix
Ubuntu:22.04:LTS libpod 0 No fix
Ubuntu:24.04:LTS libpod 0 No fix
Ubuntu:24.10 libpod 0 No fix
Ubuntu:Pro:22.04:LTS libpod 0 No fix
Ubuntu:Pro:24.04:LTS libpod 0 No fix
Wolfi podman 0 5.6.2-r2
Wolfi podman-doc 0 5.6.2-r2

Related vulnerabilities