GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — PPP device access returns EPERM in Linux machine after upgrading to 2.2.1 · Issue #2524 · orbstack/orbstack

PPP device access returns EPERM in Linux machine after upgrading to 2.2.1 #2524

New issue
Copy link
New issue
Copy link
Closed
Closed
PPP device access returns EPERM in Linux machine after upgrading to 2.2.1#2524
Copy link
Milestone
v2.2.2

Description

@Mckennasora
Mckennasora
opened on Jun 9, 2026
Issue body actions

Title: PPP device access returns EPERM in Linux machine after upgrading to 2.2.1

Summary

After upgrading OrbStack from 2.0.5 to 2.2.1, an existing Ubuntu Linux machine used for L2TP/IPsec can no longer open /dev/ppp. pppd fails with Operation not permitted, so L2TP sessions cannot create ppp0/ppp1.

Rolling back OrbStack to 2.0.5 restores the same machine and configuration: ppp0/ppp1 are created successfully and the SOCKS services bound to those interfaces start normally.

Environment

  • macOS: current local system
  • OrbStack broken version: 2.2.1
    • App bundle version: CFBundleShortVersionString = 2.2.1
    • App bundle build: CFBundleVersion = 20628
    • CLI reported earlier: Version: 2.2.1 (2020100)
  • OrbStack working version after rollback: 2.0.5
    • Version: 2.0.5 (2000500)
    • Commit: cfe47627f138ffd822c958553b0a93eaf2692c71 (v2.0.5)
  • Linux machine:
    • Name: l2tp-box
    • Distro: Ubuntu questing
    • Architecture: arm64
  • Network details/IP addresses below are redacted.

What works

IPsec/IKE succeeds in the Linux machine. The failure happens later when xl2tpd starts pppd and pppd tries to open /dev/ppp.

Error on OrbStack 2.2.1

Inside the Linux machine, xl2tpd logs:

pppd[430]: Couldn't open the /dev/ppp device: Operation not permitted
pppd[430]: Sorry - this system lacks PPP kernel support
xl2tpd[400]: child_handler : pppd exited for call 18126 with code 4
xl2tpd[400]: call_close: Call 14407 to <redacted-vpn-endpoint> disconnected

Manual checks showed /dev/ppp existed, but opening it failed:

# ls -l /dev/ppp
crw------- 1 root root 108, 0 Jun  9 16:47 /dev/ppp

# cat /dev/ppp
cat: /dev/ppp: Operation not permitted (os error 1)

Capabilities appeared broad inside the machine:

CapEff: 000001ffffffffff
NoNewPrivs: 0
Seccomp: 0

Because ppp0 and ppp1 were never created, services configured with external: ppp0 and external: ppp1 failed too:

danted[549]: error: /etc/danted.conf: problem on line 3 near token "ppp0": could not resolve hostname "ppp0"
danted[568]: error: /etc/danted2.conf: problem on line 3 near token "ppp1": could not resolve hostname "ppp1"

Expected behavior

pppd should be able to open /dev/ppp in the Linux machine, as it did on OrbStack 2.0.5, and L2TP should create ppp0/ppp1.

Actual behavior

On OrbStack 2.2.1, /dev/ppp exists but cannot be opened even as root, returning EPERM. L2TP/IPsec is unusable because PPP interfaces are not created.

Rollback result

After rolling back to OrbStack 2.0.5 with the same machine/configuration, PPP works again:

ppp0 UNKNOWN <redacted-local-ppp-ip-1> peer <redacted-peer-ppp-ip-1>/32
ppp1 UNKNOWN <redacted-local-ppp-ip-2> peer <redacted-peer-ppp-ip-2>/32

Routes and services are restored:

<redacted-private-subnet-1> dev ppp0 scope link
<redacted-private-subnet-2> dev ppp1 scope link
<redacted-private-subnet-3> dev ppp1 scope link

danted.service  active (running)
danted2.service active (running)

Question

Was there a change in 2.2.x around Linux machine device access or /dev/ppp/PPP permissions? If so, is there a supported way to allow PPP/L2TP inside an OrbStack Linux machine?

Reacted by Louis

Activity

  1. jannes-m commented on Jun 10, 2026

    @jannes-m
    jannes-m
    on Jun 10, 2026
    More actions

    Hitting the same regression via openfortivpn (Fortinet SSL VPN) on 2.2.1 → 2.1.3 fixes it. A couple of extra data points that might help narrow it down:

    Portable repro (no VPN, no machine setup) — even --privileged Docker is denied:

    docker run --rm --privileged alpine sh -c \
      'mknod /dev/ppp c 108 0 2>/dev/null; (exec 3<>/dev/ppp) && echo OK || echo EPERM'
    • 2.1.3 (20115, kernel 7.0.5) → OK
    • 2.2.1 (20628, kernel 7.0.11) → EPERM

    A --privileged container failing means the restriction is at the OrbStack host VM, above Docker’s own device cgroup. mknod of the char-108 node succeeds, but the open() is denied — so it looks like the cgroup v2 device allowlist dropped major 108 (/dev/net/tun, 10:200, is still fine). Coincides with the 2.2.0 “Security improvements to the kernel” changelog line.

    Could /dev/ppp be re-allowed (or made opt-in, like tun)?

    Reacted by Louis
  2. kdrag0n commented on Jun 10, 2026

    @kdrag0n
    kdrag0n
    on Jun 10, 2026
    Member
    More actions

    Fixed for the next version.

  3. kdrag0n
    closed this as completedon Jun 10, 2026
  4. my-lalex commented on Jun 22, 2026

    @my-lalex
    my-lalex
    on Jun 22, 2026
    More actions

    Hi there. I'm facing the issue too.
    Would you know when the next version will be out? Or how to downgrade to 2.1.x the proper way?

    Sorry for polluting the ticket, didn't know where to ask... 😓

    Reacted by Louis
  5. kdrag0n
    added this to the v2.2.2 milestone on Aug 3, 2026
  6. kdrag0n commented on Aug 3, 2026

    @kdrag0n
    kdrag0n
    on Aug 3, 2026
    Member
    More actions

    Fixed in v2.2.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      • v2.2.2No due date

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402520 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.