OpenBSD, an open-source operating system built with security in mind, has been found vulnerable to four new high-severity security vulnerabilities, one of which is an old-school type authentication bypass vulnerability in BSD Auth framework.
The other three vulnerabilities are privilege escalation issues that could allow local users or malicious software to gain privileges of an auth group, root, as well as of other users, respectively.
The vulnerabilities were discovered and reported by Qualys Research Labs earlier this week, in response to which OpenBSD developers released security patches for OpenBSD 6.5 and OpenBSD 6.6 just yesterday—that’s in less than 40 hours.
Here’s a brief explanation of all four security vulnerabilities in OpenBSD—a free and open-source BSD-based Unix-like operating system—along with their assigned CVE identifiers
OpenBSD Authentication Bypass (CVE-2019-19521)
The authentication bypass vulnerability resides in the way OpenBSD’s authentication framework parses the username supplied by a user while logging in through smtpd, ldapd, radiusd, su, or sshd services.
Using this flaw, a remote attacker can successfully access vulnerable services with any password just by entering the username as “-schallenge” or “-schallenge: passwd,” and it works because a hyphen (-) before username tricks OpenBSD into interpreting the value as a command-line option and not as a username.
Here, OpenBSD’s authentication framework interprets “-schallenge” as “-s challenge,” which forces the system into silently ignoring the challenge protocol that eventually bypasses the authentication automatically.
“If an attacker specifies a username of the form ‘-option’, they can influence the behavior of the authentication program in unexpected ways,” the advisory said.
According to the researchers, this vulnerability is practically exploitable in smtpd, ldapd, and radiusd, but not in sshd or su due to their defense-in-depth mechanisms that hang the connection even after successful authentication bypass.
However, one can still remotely exploit the flaw against sshd to determine whether an OpenBSD system is vulnerable to CVE-2019-19521 or not.
OpenBSD Local Privilege Escalation Flaws
As described above, the other OpenBSD vulnerabilities are local privilege escalation issues as briefly explained below:
- CVE-2019-19520: Due to the mishandling of environment-provided paths used in dlopen(), xlock, which comes installed by default on OpenBSD, could allow local attackers to escalate privileges to ‘auth’ group.
- CVE-2019-19522: Due to incorrect operation of authorization mechanisms via “S/Key” and “YubiKey,” which is a non-default configuration, a local attacker with ‘auth’ group permission can gain full privileges of the root user.
- CVE-2019-19519: Due to a logical error in one of the su’s primary functions, a local attacker can achieve any user’s login class, often excluding root, by exploiting su’s -L option.
Qualys researchers have also released proof-of-concept exploits for each vulnerability in its advisory.
Since patches for all four security vulnerabilities are now available, affected OpenBSD users recommended to install patches using syspatch mechanism.