Any server I use, I get "event_wait : Interrupted system call (code=4)". This is running on my desktop computer; my laptop computer has almost the same configuration and works out of the box. There's something wrong with NetworkManager in this machine, I think.
Hey I'm a Linux newbie using Debian. I'm trying to downgrade to Openvpn 2.4.9. How do I do this? I run the cmd "apt install openvpn=2.4.9" but that doesn't work. I'm sure I need to specify my Debian version after 2.4.9 but I'm not sure how to do this. Please help. Thanks.
Hi drdrewdown, thanks for the quick reply. No sorry I should have clarified. The version of OpenVPN I'm using is 2.5.1 and I'm trying to downgrade to 2.4.9 as you stated in your post so my VPN will work. My current Debian version is 5.10.19. Seems like I'm missing something when I run "apt install openvpn=2.4.9+5.10.19" or variations of that command to downgrade my Openvpn version in order to make Openvpn work. Thanks in advance for your help.
So, this option is culprit. You can use the openvpn command to establish connection every time. Let's make more general WA solution with all servers that you might use. This will make life a bit easier.
My WA is to create a script to connect with direct use of openvpn command.You need to get your favorite server list first by running your cyberghost command you mentioned in your question with every server you might use. Then, read the /var/log.auth.log and copy server name from the log (will be something like this): paris-s404-i11.cg-dialup.net (complete name).
I was also having a similar issue connecting the VPN on my Linux 22.04 version, however, I realized that I had the wrong terminal command, here is what I did right that worked for me. After installing the CyberGhost VPN successfully, now it is time to make the connection
Now to verify if the connection was successful, let us kindly run the command cyberghostvpm --status and it connection was successful we out put the success message VPN connection found as seen belowsuccess message.I hope this helps
So type "ldd --version" and this will tell you what version of glibc you have. Prob. 2.32.. Then change directory into the cyberghost install folder and "sudo nano install.sh" go down to the kali versions and change 2.31 to 2.32. hit ctrl+x, enter, enter.. then relaunch the install file.. "sudo bash install.sh"
The CyberGhost VPN client suffers from an elevation of privilege vulnerability and is filed under CVE-2023-30237. A specially crafted JSON payload sent to the CyberGhost RPC service can lead to command line injection when the OpenVPN process is launched, leading to full system compromise. The latest 8.3.10.10015 version released on the 24 February 2023 fixes this issue.
This post is as much about a recent EoP vulnerability found within the popular CyberGhost VPN client as my experiences of reporting my first vulnerability via Bugcrowd. Suffice to say, it was the worst disclosure experience I have witnessed to date.
So, we at PTP decided to commission further dedicated research into the CyberGhost client itself. After several days of poking around, a command line injection vulnerability was found. Now some, reading this, might conclude that this was a form of retaliation. To some degree, it was, but not because of missing out on a bounty, I had no interest in that. It was more to do with how the original case was handled and how this affected an ongoing Red Team operation. Therefore, I had no intention whatsoever of reporting this new vulnerability via Bugcrowd.
The first challenge was finding a direct route to disclosure without involving Bugcrowd. Every avenue I tried came to a dead end. Online support pointed me toward Bugcrowd or CyberGhosts own disclosure submission page which was also powered by Bugcrowd. Eventually, a CyberGhost support ticket system representative sent me to [email protected]. Kape appeared to be the developers behind several well-known consumer VPN products.
The next day, I did receive a follow up email from a human via the security email address. Kape highlighted that they already covered my concerns via Bugcrowd. Kape had recognised my name from the Bugcrowd report and assumed it was the same vulnerability.
After explaining to Kape that this is nothing to do with the original disclosure, they still insisted that I submit via Bugcrowd. Multiple emails later, as I was clearly getting nowhere, I decided to submit the technical details directly to the security@ email address since there were humans monitoring this mailbox too.
Once Kape could see that disclosure was not going to go through Bugcrowd, the dialogue at this point between us was more inline with what I would usually experience. We agreed a way forward, disclosure would remain private until a fix was ready, and a fix was released.
In fairness to Kape, the fix was swift in comparison with other disclosure experiences in the past. I just wish that software vendors would offer direct disclosure routes in addition to bug bounty platforms. Some researchers would prefer the direct approach.
When a request is made to connect to the configured city or country via the unprivileged UI, the details are sent to the backed service and eventually the OpenVPN or Wireguard process is started to establish the underlying VPN connection.
Next it was time to look at the communication protocol and how it worked. Luckily for me, both the client and service were written in .NET, so the job was far easier than a native counterpart. The RPC communication method was JSON and looked like initially that perhaps an immediate Remote Code Execution could be possible.
As you can see from the format, the direct C# interfaces from the services are exposed and the parameters for a specific method use the often abused $type specifier when deserialising using JsonSerializer from the Newtonsoft library. But once again, the developers had done their due diligence and JsonSerializer was configured correctly and prevented arbitrary .NET types from being created during JSON deserialization.
With that path exhausted, attention shifted to the callable methods themselves. The ConnectToVpnServer method was the most interesting, as this was the method that led to the construction of the command line string that was fed to openvpn.exe or the wireguard DLL, depending on which method was currently configured.
This eventually let me to a class called OpenVPN and CommandSanitizeHelpers. Once again, evidence was found where developers had put efforts in place, this time to prevent command line injection.
The reason that the ConnectionString JSON property string is missing from the command line is due to the subtle fact that we embedded a null character at the end of the ServerIp field within the JSON payload. This meant that even though it was concatenated in the C# code, by the time it reached the CommandLineToArgVW API call, the null character was treated as end of string, allowing greater control over the final generated command line since we also could exclude anything from the ConnectionString property.
A security researcher has discovered multiple vulnerabilities impacting the Linux version of the CyberGhost VPN client, which could be exploited for remote code execution and man-in-the-middle attacks.
For those unable to upgrade the CyberGhost VPN for Linux client to version 1.4.1, it is recommended to switch their connection type from Wireguard to OpenVPN, which mitigates the man-in-the-middle and remote code execution issues.
RestorePrivacy is a digital privacy advocacy group committed to helping people stay safe and secure online. You can support this project through donations, purchasing items through our links (we may earn a commission at no extra cost to you), and sharing this information with others. See our mission here.
This article discloses the vulnerabilities that were present in the CyberGhostVPN Linux 1.3.5 client (and versions below). The latest version of the CyberGhostVPN Linux client is now free from these vulnerabilities.
Every CyberGhost user has an account that is used to log in to the management web panel to manage their subscription and download the client for their desired platform. Once the client is installed, the same account is used to log in to the client.
users can select their desired VPN server by specifying criteria such as service type (OpenVPN or Wireguard), country, city, and server type (traffic, streaming, or torrent). Depending on the service type selected, a different underlying protocol is used, and different paths in the code are executed.
The client is delivered as an ELF executable, so there is no source code available. Fortunately, it is written in Python, which can be decompiled to a form that, in many cases, resembles the original source code.
This case is based on two vulnerabilities that can be chained together to achieve code execution by a man-in-the-middle attacker. It has been agreed with the vendor that technical details that could be used to reproduce the exploit will be omitted to protect users who have not yet patched their clients. Despite these limitations, I would like to present a high-level overview of the issues and possible ways of exploitation.
The client always connects to the API over HTTPS. However, in one specific case, the communication had certificate validation disabled. The affected endpoint happened to be responsible for fetching connection details (hostname, port, key) of a chosen Wireguard server.
7fc3f7cf58