Skip to content

feat(security): add controls to block Docker/Podman LAN access by default #25

@0xferrous

Description

@0xferrous

Add a configurable networking policy for spawned Docker/Podman workloads so local-LAN access can be restricted by default, with an explicit opt-in when LAN access is required.

Problem

By default, Docker and Podman containers can often reach devices on the same LAN segment as the host (NAS, printers, routers, IoT devices, internal services, etc.).

For agent-driven or untrusted workloads, this increases blast radius:

  • Containerized tasks can probe or connect to private LAN devices
  • Sensitive internal services may be reachable unintentionally
  • Users may assume container isolation is stricter than it is

This is a security/usability gap: users need a clear and simple way to prevent LAN egress unless explicitly allowed.

Proposal

Introduce a networking policy setting for runtime/container execution, for example:

  • lan_access = "blocked" | "allowed" (or equivalent boolean defaulting to blocked)
  • CLI override flags (e.g. --allow-lan, --block-lan)

Default behavior should prefer safety:

  • Block container access to RFC1918/private ranges and other local-link/LAN targets by default
  • Keep normal internet egress behavior configurable (implementation-dependent)
  • Allow explicit per-run override when users need LAN reachability

Implementation can use backend-specific mechanisms (iptables/nftables rules, Podman network config, Docker network policy, custom bridge isolation, etc.), but should present one consistent product-level behavior.

Scope

  • Define a user-facing LAN access policy in config
  • Add CLI-level override for one-off runs
  • Apply policy consistently across Docker and Podman backends
  • Document exact blocked address ranges and behavior
  • Surface active policy in logs/output so users can verify at runtime

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions