Skip to content

Micro-VM guests unconditionally boot with root debug console on vsock 1026 #2274

Closed

Description

@destijl

This issue was generated as part of an AI review of pre-GA debug and diagnostic surfaces.

Problem Description

In cmd/ateom-microvm/run.go:716-722, guestConfig() unconditionally appends kata.WithDebugConsole() to the guest kernel command line parameters:

func (s *AteomService) guestConfig() (memMiB, vcpus int, kparams string) {
    kparams = kata.WithDebugConsole()
    if s.kataDebug {
        kparams = kata.WithAgentDebug(kparams)
    }
    return kata.DefaultMemoryMiB, kata.DefaultVCPUs, kparams
}

In cmd/ateom-microvm/internal/kata/config.go:30-44, debugConsoleKernelParams is defined as:

baseKernelParams + " agent.debug_console agent.debug_console_vport=1026"

This configuration is applied on every actor boot, independent of whether the --kata-debug flag is enabled.

Impact

  1. The in-guest kata-agent binds an unauthenticated interactive root shell (/bin/bash or /bin/sh) on vsock port 1026.
  2. Any entity with access to the host-side hybrid vsock socket (/run/vc/vm/<actorUID>/hybrid.vsock or inside the worker pod) can connect with CONNECT 1026 and immediately obtain a root interactive shell inside the tenant's micro-VM without authentication or audit logging.
  3. On container start failures (startActorContainers and startRootfsContainer), ateom-microvm calls kata.DebugConsoleDump (run.go:881, 911) to execute shell commands (ip addr, ip route, ip neigh) inside the guest via the debug console and logs the output to host logs.

Proposed Remediation

  1. Remove kata.WithDebugConsole() from the default boot parameters in guestConfig().
  2. Gate agent.debug_console and agent.debug_console_vport=1026 strictly behind --kata-debug=true for local development.
  3. Ensure production builds and release manifests do not enable in-guest debug consoles.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions