A critical vulnerability in an Internet firewall appliance that is made by Sophos and may allow an unverified attacker to achieve root status (and thereby execute any sort of arbitrary command) has been detailed by Rob Mardisalu of TheBestVPN in a blog post.
The exploit, tracked as CVE-2019-17059, impacts Sophos's CyberoamOS Linux-based operating system. It can be triggered by sending specially crafted requests to the product's Web Admin or SSL VPN consoles. This "specially crafted request" is the methodology used by many SQL injection attacks.
Cyberoam-based devices are generally used as firewalls and SSL VPN gateways. This architectural position is very beneficial to an attacker, since internal networks can then be accessed by the attacker from a device that is usually trusted by default.
The blog says that Shodan (a search engine for Internet-connected devices) shows that there are more than 96,000 Internet-facing Cyberoam devices across the world. Most of these devices are installed in enterprises, universities and some in major banks.
The posting says that both the configuration and SSLVPN interfaces have a servlet that handles the main operations for them. These operations are defined using a parameter named "mode".
Most of these are authenticated. But there are a few ops that can be accessed without authentication: "login" is one.
The problem that was found originates in the email antivirus/antispam module. The request mode for this endpoint (module, op) is 458. Now, the opcodes are mapped to their names in the Cyberoam database (internal database Postgres). By looking up 458, the name of this opcode is obtainable. The vulnerable opcode is named "sendmail".
Cyberoam does some preliminary validation checks on data in handling the opcode. When this first validation round is passed (or bypassed if it is not done at all) a new event code (363) will be sent to the backend. The bug that was discovered is in the code that handles the opcode in the backend.
After the variables are assigned, the opcode handler makes a call to EXECSH which then calls /bin/sh -c "ARGUMENTS". If the execution happens while using values that are controlled, remote command execution is simply done through the EXECSH call. Authentication is not required.
Sophos has issued an advisory on the RCE, where it says that a hot fix patch was issued in late September. The patched OS version is the upcoming CROS version 10.6.6 MR-6. Sophos also claims that 99% of affected appliances have already been patched, but that figure was not independently verified. Of course, any machines that were powered down or not facing the Internet would not have been patched. Fortunately, the patch is available through Sophos support independent of the full OS upgrade.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.