Horizon Alert
Summary of the vulnerability and why it matters
The Grav API Plugin has a critical vulnerability that could allow an attacker with write access to webhooks to retrieve local files or interact with internal services. This issue affects the Grav CMS's RESTful API plugin, which provides headless content access.
- API plugin allows unauthorized file access.
- This issue impacts headless content access systems.
- Confirm if your content API is exposed to risk.
Attack Path
How an attacker could exploit the issue
An attacker with write access to API webhooks can leverage this vulnerability by submitting specially crafted webhook URLs. The plugin, lacking sufficient protocol restrictions, allows these URLs to target file protocols or internal network addresses. This can result in the retrieval of sensitive local files or the redirection of requests to internal services, potentially exposing further system details or enabling pivoting attacks.
- Requires authenticated user with webhook write access.
- Submits a malicious webhook URL.
- Risk of local file retrieval and internal pivoting.
Live Threat
Current exploitation, exposure, and threat context
When supported by the advisory, an authenticated user with webhook write permissions could leverage this vulnerability to access local files or pivot requests to internal services and cloud metadata endpoints.
- Local files and internal service data at risk.
- Requests can be sent to sensitive endpoints.
- Internal network reconnaissance and data exfiltration.
Operational Fix
Recommended remediation, mitigation, and detection steps
The Grav API plugin's webhook functionality is susceptible to exploitation by authenticated users with `api.webhooks.write` permissions. This could allow for the retrieval of local files and pivoting to internal services or cloud metadata endpoints. Owners of applications utilizing the Grav API plugin should first identify all instances of the plugin, assess their reachability and business criticality, and then determine the appropriate remediation plan based on risk.
- Application owners should own the issue.
- Verify plugin instances and their reachability.
- Plan remediation based on risk and criticality.