CVE-2026-53075
NoneCVSS
—
EPSS
0.3%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
A local user on an affected Linux system may be able to change certain network settings they should not control, potentially disrupting services or weakening isolation.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Privilege Escalation
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a local Linux kernel privilege-boundary flaw in the PPP subsystem. Opening /dev/ppp was authorized using the opener's user namespace credentials, but certain unattached PPP administrative ioctls operated against the caller's current network namespace. A local unprivileged user could create a new user namespace, gain CAP_NET_ADMIN only inside that new user namespace, and then issue PPPIOCNEWUNIT, PPPIOCATTACH, or PPPIOCATTCHAN against an inherited network namespace where they should not have administrative authority. The practical impact is unauthorized PPP network-device administration across namespace boundaries, which may enable network manipulation, isolation bypass, or denial of service depending on system configuration and PPP usage.
Why it matters to the business
Systems that allow unprivileged user namespaces and expose the PPP device may let a local low-privileged user perform network administration actions they should not be allowed to perform. This can undermine container or namespace isolation, disrupt VPN or PPP-based connectivity, and increase the risk that a local compromise becomes broader operational disruption. EPSS is currently low and the issue is not listed in CISA KEV, but kernel privilege-boundary bugs should still be prioritized on multi-user systems, container hosts, build runners, CI workers, VPN gateways, and shared Linux infrastructure.
How an attack unfolds
An attacker first obtains local code execution as an unprivileged Linux user. They create a new user namespace using CLONE_NEWUSER, where they can hold CAP_NET_ADMIN relative to that new user namespace. Because the vulnerable PPP code checks /dev/ppp open permissions against one namespace context but executes unattached PPP administrative ioctls against the inherited target network namespace, the attacker can submit PPPIOCNEWUNIT, PPPIOCATTACH, or PPPIOCATTCHAN through /dev/ppp. On vulnerable kernels, these requests may be accepted even though the user lacks CAP_NET_ADMIN in the user namespace that owns the target network namespace. The attacker can then create or attach PPP units/channels in a namespace they should not control, potentially affecting routing, interfaces, PPP services, or availability. No public mature exploit is indicated in the supplied data, but the primitive is local and relies on standard namespace and ioctl behavior rather than remote access.
How to fix it
Apply the Linux kernel update that includes the PPP permission-check fix requiring CAP_NET_ADMIN in the user namespace that owns the target network namespace before processing unattached PPP administrative ioctls. Use the fixed kernel packages provided by the operating system or appliance vendor and reboot into the updated kernel. If immediate patching is not possible, reduce exposure by disabling unprivileged user namespaces where operationally acceptable, restricting access to /dev/ppp, unloading or blacklisting unused PPP kernel modules such as ppp_generic, and limiting local shell/container access on affected hosts. Validate these mitigations carefully because they may affect VPN, dial-up, PPPoE, or other PPP-dependent services.
How to confirm the fix worked
Confirm the running kernel is a vendor-fixed build, not merely that an updated package is installed; verify with uname -a, package manager query output, and vendor advisory metadata. Confirm /dev/ppp permissions are restricted to intended users and services. On systems where PPP is not required, verify ppp_generic is not loaded. For behavioral validation in a controlled test environment, an unprivileged user that creates a new user namespace should not be able to perform PPPIOCNEWUNIT, PPPIOCATTACH, or PPPIOCATTCHAN against an inherited network namespace unless they hold CAP_NET_ADMIN in the user namespace that owns that target network namespace; the expected failure is EPERM or an equivalent permission denial. Also review container runtime and host settings to ensure unprivileged user namespace usage aligns with policy.
Typical attack path
- Gain local unprivileged shell or code execution on a Linux system.
- Confirm unprivileged user namespaces are permitted and /dev/ppp is present and accessible.
- Create a new user namespace with CLONE_NEWUSER to obtain CAP_NET_ADMIN within that new user namespace.
- Retain or enter an inherited network namespace where the attacker does not legitimately have CAP_NET_ADMIN.
- Open /dev/ppp.
- Issue unattached PPP administrative ioctls such as PPPIOCNEWUNIT, PPPIOCATTACH, or PPPIOCATTCHAN.
- Manipulate PPP units or channels in the target network namespace, causing unauthorized network changes or service disruption.
How to detect it
Look for evidence of local users or unexpected processes opening /dev/ppp and issuing PPP administrative ioctls, particularly near namespace creation events. Useful sources include Linux auditd logs, eBPF syscall telemetry, endpoint detection logs, container runtime logs, kernel messages, shell history where available, and network-interface change logs. Audit rules can monitor /dev/ppp access and ioctl syscalls, then correlate with clone/unshare/setns activity involving user and network namespaces. Suspicious patterns include non-pppd processes interacting with /dev/ppp, unprivileged users invoking unshare with user namespaces, creation of unexpected ppp interfaces, or PPP operations from containers/build jobs that should not administer host networking. Because exploitation may not leave a unique artifact, focus on correlation: low-privileged process + user namespace creation + /dev/ppp ioctl + unexpected PPP interface/channel changes.
- /dev/ppp
- PPPIOCNEWUNIT
- PPPIOCATTACH
- PPPIOCATTCHAN
- ioctl.*C004743E
- ioctl.*c004743e
- ioctl.*4004743D
- ioctl.*4004743d
- ioctl.*40047438
- unshare --user
- unshare -U
- CLONE_NEWUSER
- ppp_generic
- pppd
- ppp0
What your security team should do
- Prioritize patching shared Linux hosts, container hosts, CI/build workers, bastion systems, VPN/PPP infrastructure, and multi-user servers.
- Inventory systems where /dev/ppp exists or ppp_generic is loaded, and determine whether PPP functionality is actually required.
- Where feasible, disable unprivileged user namespaces or restrict them to trusted workloads until patched.
- Restrict /dev/ppp access using device permissions, cgroup device policy, container runtime configuration, or mandatory access control profiles.
- Add audit coverage for ioctl activity against /dev/ppp, especially PPPIOCNEWUNIT, PPPIOCATTACH, and PPPIOCATTCHAN by non-root users or unexpected processes.
- Review recent local privilege escalation, namespace creation, and suspicious network-interface changes on high-risk systems.
- Coordinate kernel patch deployment with reboot windows, because the fix is only effective after booting the corrected kernel.
The record
In the Linux kernel, the following vulnerability has been resolved: ppp: require CAP_NET_ADMIN in target netns for unattached ioctls /dev/ppp open is currently authorized against file->f_cred->user_ns, while unattached administrative ioctls operate on current->nsproxy->net_ns. As a result, a local unprivileged user can create a new user namespace with CLONE_NEWUSER, gain CAP_NET_ADMIN only in that new user namespace, and still issue PPPIOCNEWUNIT, PPPIOCATTACH, or PPPIOCATTCHAN against an inherited network namespace. Require CAP_NET_ADMIN in the user namespace that owns the target network namespace before handling unattached PPP administrative ioctls. This preserves normal pppd operation in the network namespace it is actually privileged in, while rejecting the userns-only inherited-netns case.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|