Skip to content

mknod /dev/net/tun read access fails after update to v1.7.24 #11078

Open
@weikinhuang

Description

@weikinhuang

Description

I believe there was a change somewhere in containerd or runc where created devices might be missing the DeviceAllow configuration where it was previously working for devices created within the container.

I am running this under kubernetes v1.31.3

Steps to reproduce the issue

  1. Create a pod spec with the following container
  2. Install openvpn in the container
  3. Create tun device
  4. mkdir -p /dev/net
  5. mknod -m 0666 /dev/net/tun c 10 200
  6. Start openvpn with the tun device
  - args:
    - sleep infinity
    env:
    image: debian:latest
    imagePullPolicy: IfNotPresent
    name: ingress-vpn
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
        - MKNOD
        - SETGID
        - SETUID
        drop:
        - all

Describe the results you received and expected

+ firewall::iptables-append -A POSTROUTING -t nat -s 192.168.255.0/24 -o tun0 -j MASQUERADE
+ shift
+ iptables -C POSTROUTING -t nat -s 192.168.255.0/24 -o tun0 -j MASQUERADE
+ return 0
+ set +x
+ firewall::iptables-append -A POSTROUTING -t nat -s 192.168.254.0/24 -o tun0 -j MASQUERADE
+ shift
+ iptables -C POSTROUTING -t nat -s 192.168.254.0/24 -o tun0 -j MASQUERADE
+ return 0
+ set +x
2024/11/30 00:42:45 [INFO] generate received request
2024/11/30 00:42:45 [INFO] received CSR
2024/11/30 00:42:45 [INFO] generating key: ecdsa-256
2024/11/30 00:42:45 [INFO] encoded CSR
2024/11/30 00:42:45 [INFO] signed certificate with serial number [REDACTED]
2024-11-30 00:42:45 WARNING: --topology net30 support for server configs with IPv4 pools will be removed in a future release. Please migrate to --topology subnet as soon as possible.
2024-11-30 00:42:45 DEPRECATED OPTION: --cipher set to 'none' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). OpenVPN ignores --cipher for cipher negotiations. 
2024-11-30 00:42:45 OpenVPN 2.6.3 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO]
2024-11-30 00:42:45 library versions: OpenSSL 3.0.11 19 Sep 2023, LZO 2.10
2024-11-30 00:42:45 DCO version: N/A
2024-11-30 00:42:45 WARNING: using --duplicate-cn and --client-config-dir together is probably not what you want
2024-11-30 00:42:45 Note: OpenSSL hardware crypto engine functionality is not available
2024-11-30 00:42:45 ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)
2024-11-30 00:42:45 Exiting due to fatal error

What version of containerd are you using?

v1.7.24

Any other relevant information

No response

Show configuration if it is related to CRI plugin.

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/externalIssue in external component being tracked by containerd

    Type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions