
Eddie VPN 2.24.6 - Local Privilege Escalation
Discovered by
Offensive Team, Fluid Attacks
Summary
Full name
Eddie VPN 2.24.6 - Local Privilege Escalation via shortcut-cli + openvpn Command Chain
Code name
State
Public
Release date
Jan 6, 2026
Affected product
Eddie VPN
Vendor
AirVPN
Affected version(s)
2.24.6
Vulnerability name
Privilege escalation
Vulnerability type
Remotely exploitable
No
CVSS v4.0 vector string
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS v4.0 base score
8.5
Exploit available
Yes
CVE ID(s)
Description
Eddie VPN for macOS contains a privilege escalation vulnerability that allows local, unprivileged users to execute arbitrary code as root. The vulnerability stems from a chain of two commands in the privileged helper tool eddie-cli-elevated: shortcut-cli and openvpn, which, when combined, allow complete system compromise without user interaction.
This vulnerability is exploitable when the user has enabled the "Don't ask elevation every run" option in Eddie VPN settings. This option installs a LaunchDaemon (org.airvpn.eddie.ui.elevated.plist) that runs the privileged helper tool persistently, allowing any local process to connect to it without requiring the Eddie GUI to be running. This significantly increases the attack surface as the vulnerable service remains accessible even when the VPN application is not actively in use.
The exploitation chain works as follows:
shortcut-cli creates a malicious wrapper script at /usr/local/bin/eddie-cli with root ownership and 0755 permissions.
The wrapper passes all security checks in CheckIfExecutableIsAllowed (root-owned, not writable by group/other, executable)
openvpn command accepts the wrapper path because it only validates file permissions, not content
When openvpn executes the wrapper, the malicious code runs with root privileges.
Four flaws cause the vulnerability:
shortcut-cli does not validate the content of the script it creates
CheckIfExecutableIsAllowed only validates file permissions, not authenticity or content
openvpn trusts any executable that passes permission checks without verifying it's a legitimate OpenVPN binary
file-immutable-set allows making arbitrary files immutable, enabling denial of service and persistence attacks
Vulnerability
The core of the vulnerability lies in the shortcut-cli command implementation that creates executable scripts without content validation: (src/App.CLI.MacOS.Elevated/src/impl.cpp - Line 82-98 )
The security check function only validates permissions: (src/Lib.CLI.Elevated/src/ibase.cpp - Line ~1002)
The openvpn command trusts this validation: (src/Lib.CLI.Elevated/src/iposix.cpp - Line 66-104)
PoC
Evidence of Exploitation
PoC
Output

Our security policy
We have reserved the ID CVE-2025-14979 to refer to this issue from now on.
System Information
Eddie VPN
Version 2.24.6
Operating System: macOS
References
Github Repository: https://github.com/AirVPN/Eddie
Product: https://eddie.website/
Mitigation
There is currently no patch available for this vulnerability.
Credits
The vulnerability was discovered by Oscar Uribe from Fluid Attacks' Offensive Team.
Timeline
Dec 2, 2025
Vulnerability discovered
Dec 19, 2025
Vendor contacted
Jan 6, 2026
Public disclosure
Does your application use this vulnerable software?
During our free trial, our tools assess your application, identify vulnerabilities, and provide recommendations for their remediation.






