Sysdig Reports LLM-Driven Container Escape and Kubernetes Secret Access

· Original article ↗

Summary

Sysdig TRT says an agentic actor exploited CVE-2026-39987 in a marimo notebook, used a mounted Docker socket to access the host, and replayed a Kubernetes service-account token to read Secrets in the default namespace.

Key points

  • Sysdig TRT says it observed the activity on May 29, 2026, after exploitation of CVE-2026-39987 in a marimo notebook.
  • The actor enumerated container escape options, then used a mounted Docker socket to create privileged containers and access the host filesystem.
  • Sysdig says the actor accessed host credential files, including /etc/shadow and SSH keys, and used nsenter to enter host namespaces.
  • The actor replayed a Kubernetes service-account token and read Secrets in the default namespace, including database credentials and API keys.
  • Sysdig identified scripted payload staging, response parsing, and adaptive probing as evidence of an LLM-driven operation.
  • Sysdig recommends updating marimo to version 0.23.0 or later, avoiding Docker socket mounts, restricting container privileges, and limiting service-account permissions.

Article Details

Attack Vectors
  • The attacker exploited CVE-2026-39987 in an exposed marimo notebook to gain application-level access.
  • A mounted /var/run/docker.sock was used to create privileged containers with host filesystem and namespace access.
  • The attacker used nsenter to enter host namespaces and access host files.
  • The attacker read a mounted Kubernetes service-account token and replayed it against the in-cluster API to enumerate and dump Secrets.
Defensive Notes
  • Update marimo to version 0.23.0 or later.
  • Do not mount /var/run/docker.sock into application containers.
  • Run containers unprivileged with a read-only root filesystem, dropped capabilities, and a restrictive seccomp profile.
  • Scope Kubernetes service-account tokens, disable automounting when unnecessary, use bound short-TTL tokens, and restrict RBAC permissions to list and get Secrets.
  • Rotate credentials reachable from the compromised workload or host, including Kubernetes Secrets, AWS keys, SSH keys, and database passwords.

Indicators of compromise

TypeIndicatorContext
IPV4103[.]43[.]71[.]95Reported as the source IP for the marimo exploitation and downstream replay; the article characterizes it as a moderate-quality indicator.
IPV443[.]167[.]11[.]88Reported second-stage infrastructure used to deliver the escape payload; the article characterizes source IPs as moderate-quality indicators.
URLhxxp[:]//43[.]167[.]11[.]88:8084/sltSecond-stage payload URL retrieved and piped to a shell during the host breakout.

MITRE ATT&CK

T1003.008 · /etc/passwd and /etc/shadowThe attacker directly accessed the host's /etc/shadow file through the breakout container.T1059.004 · Unix ShellThe attacker executed the retrieved second-stage payload through a shell and ran shell commands during host access.T1059.006 · PythonThe attacker delivered and executed a Python script to query the Kubernetes API and dump Secrets.T1190 · Exploit Public-Facing ApplicationThe attacker exploited CVE-2026-39987 in an exposed marimo notebook for initial access.T1528 · Steal Application Access TokenThe attacker read the Kubernetes service-account token mounted in the application pod.T1550.001 · Application Access TokenThe attacker replayed the stolen service-account token to authenticate to the in-cluster Kubernetes API.T1552.001 · Credentials In FilesAfter breakout, the attacker read host credential files, including SSH keys and /etc/shadow.T1609 · Container Administration CommandThe attacker sent Docker API requests through the mounted socket to create containers on the host.T1610 · Deploy ContainerThe attacker created privileged containers to run host commands and access host-mounted paths.T1611 · Escape to HostThe attacker used a mounted Docker socket to create privileged containers and escape to the host.T1611.001The attacker used /var/run/docker.sock to control the Docker daemon and create the breakout container.T1611.002The attacker used nsenter to enter host mount, UTS, network, PID, and IPC namespaces.T1613 · Container and Resource DiscoveryThe attacker enumerated the container environment, including the Docker socket, capabilities, seccomp posture, and Kubernetes token availability.

CVE

Products

Tools

Countries

Related Articles