Last updated at Fri, 01 Dec 2023 22:11:26 GMT
Rapid7 is responding to CVE-2023-49103, an unauthenticated information disclosure vulnerability impacting ownCloud.
Background
ownCloud is a file sharing platform designed for enterprise environments. On November 21, 2023, ownCloud disclosed CVE-2023-49103, an unauthenticated information disclosure vulnerability affecting ownCloud, when a vulnerable extension called “Graph API” (graphapi) is present. If ownCloud has been deployed via Docker, from February 2023 onwards, this vulnerable graphapi component is present by default. If ownCloud has been installed manually, the graphapi component is not present by default.
Searching for ownCloud via Shodan indicates there are at least 12,320 instances on the internet (as of Dec 1, 2023). It is unknown how many of these are currently vulnerable.
File transfer and sharing platforms have come under attack from ransomware groups in the past, making this a target of particular concern, as ownCloud is also a file sharing platform. On November 30, 2023, CISA added CVE-2023-49103 to its known exploitable vulnerabilities (KEV) list, indicating threat actors have begun to exploit this vulnerability in the wild. Rapid7 Labs has observed exploit attempts against at least three customer environments as of writing this blog.
The vulnerability allows an unauthenticated attacker to leak sensitive information via the output of the PHP function “phpinfo”, when targeting the URI endpoint “/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php”. This output will include environment variables which may hold secrets, such as user names or passwords that are supplied to the ownCloud system. Specifically, when ownCloud is deployed via Docker, it is common practice to pass secrets via environment variables.
While it was initially thought that Docker installations of ownCloud were not exploitable, Rapid7 researchers have now confirmed (as of Nov 30, 2023) that it is possible to exploit vulnerable Docker-based installations of ownCloud, by modifying the requested URI such that it can bypass the existing Apache web server’s rewrite rules, allowing the target URI endpoint to be successfully reached.
Previously, it was thought any attempt to exploit a vulnerable Docker-based installation of ownCloud would fail with a HTTP 302 redirect, however using this new technique, it is possible to successfully exploit vulnerable Docker-based installations of ownCloud. As Docker passes secrets via environment variables, this allows an attacker to leak secrets such as the OWNCLOUD_ADMIN_USERNAME and OWNCLOUD_ADMIN_PASSWORD environment variables, which will contain the username and password for the admin user, allowing an attacker to login to the affected ownCloud system with administrator privileges.
Timeline of events:
- November 21, 2023 - The vendor ownCloud published an advisory for CVE-2023-49103.
- https://owncloud.com/security-advisories/disclosure-of-sensitive-credentials-and-configuration-in-containerized-deployments/
- November 22, 2023 - An initial exploit was published, however Rapid7 researchers confirmed (see AttackerKB) this specific exploit is not able to successfully exploit Docker-based vulnerable installations of ownCloud.
- https://github.com/creacitysec/CVE-2023-49103
- November 27, 2023 - GreyNoise report observing attempted exploitation as early as November 25, 2023.
- https://www.greynoise.io/blog/cve-2023-49103-owncloud-critical-vulnerability-quickly-exploited-in-the-wild
- November 29, 2023 - Rapid7 research published an AttackerKB assessment, detailing how the current public exploit is not able to successfully exploit vulnerable instances of ownCloud that have been installed via Docker.
- https://attackerkb.com/assessments/a2b1b41a-0a26-4226-a53b-ae72e6c65107
- November 30, 2023 - CISA adds CVE-2023-49103 to its known exploitable vulnerabilities (KEV) list.
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- November 30, 2023 - Rapid7 research confirms a technique is available that makes vulnerable docker installations of ownCloud exploitable in a default configuration.
Affected Products
Please note: Information on affected versions or requirements for exploitability may change as we learn more about the threat.
The affected product is the ownCloud Graph API extension, specifically versions 0.2.x before 0.2.1 and 0.3.x before 0.3.1. CVE-2023-49103 has been remediated in version 0.3.1 and 0.2.1 of graphapi, released on September 1st 2023.
You can find more details on the vendor page: https://marketplace.owncloud.com/apps/graphapi
Mitigation guidance
To remediate CVE-2023-49103, the vulnerable graphapi
component should be updated to 0.3.1 as per the vendor advisory. If the below file is present in an ownCloud installation, it should be deleted:
/owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php
An ownCloud installation may be further hardened by adding the PHP function "phpinfo" to the PHP disabled functions list, in the appropriate PHP ini configuration file. Since disclosing CVE-2023-49103, ownCloud have added this hardening feature to several recent versions of their official Docker container images. Docker containers that were built from Docker images released prior to this addition will not have the updated hardening applied unless their images are rebuilt.
It is highly recommended to update ownCloud to at least version 10.13.1, as this resolves CVE-2023-49103 when the graphapi is shipped as part of the complete bundle with ownCloud. Version 10.13.1 also resolves two other vulnerabilities:
- CVE-2023-49104: A subdomain validation bypass in the oauth2 component
- CVE-2023-49105: A WebDAV API authentication bypass.
All 3 vulnerabilities were disclosed by ownCloud on November 21, 2023.
Indicators of Compromise
An indicator of compromise for CVE-2023-49103 will be the presence of an HTTP GET request to a URI path containing the following in the Apache server’s access logs:
/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php
A successful request will receive an HTTP 200 response. For example, a successful exploitation attempt against a vulnerable Docker-based installation of ownCloud will have a log file entry that looks like this (scroll all the way to the right in the box):
192.168.86.34 - - [01/Dec/2023:09:32:57 +0000] "GET /apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php/.css HTTP/1.1" 200 30939 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
When exploiting a Docker-based installation, the attacker must append an extra path segment to the target URI path, such as `/.css`, in order to bypass the Apache rewrite rules and allow the target endpoint to be successfully reached. Due to how the .htaccess file in ownCloud specifies multiple potential file extensions which bypass the rewrite rules, the additional path segment an attacker can use may be one of several values, as listed below:
/.css
/.js
/.svg
/.gif
/.png
/.html
/.ttf
/.woff
/.ico
/.jpg
/.jpeg
/.json
/.properties
/.min.map
/.js.map
/.auto.map
If a vulnerable ownCloud server has added the PHP function `phpinfo` to its disabled functions list, no content will be returned to the attacker, and the HTTP response will have a Content-Length of zero.
A failed exploitation attempt will see an HTTP response containing a 404 or 302 response code.
Rapid7 Labs has a Sigma rule available to help organizations identify possible exploitation activity related to this vulnerability link: https://github.com/rapid7/Rapid7-Labs/tree/main/Sigma
Rapid7 Customers
InsightVM and Nexpose customers can assess their exposure to CVE-2023-49103 with an authenticated check for unix systems, scheduled for today’s (December 1) content release.
Please note: Emergent threats evolve quickly. As we learn more about this vulnerability, this blog post will also evolve. This page will serve as the anchor for our findings, product coverage, and other important information that can assist you in mitigating and remediating this threat.
Our aim is to provide you with as much of this information as we can confidently verify, as early as possible, with the understanding that it will take some time for the full picture to emerge. We will update this blog post in real time as we learn more details about this vulnerability and perform an in-depth technical analysis of the attack vector.