Unauthenticated Remote Code Execution in Joomla UP Plugin
The Joomla UP plugin (Universal Plugin) is vulnerable to unauthenticated remote code execution via insecure GitHub action installation (CVE-2026-97163), allowing attackers to force the download of arbitrary code due to disabled TLS certificate verification.
CVE search metadata
CVE search record: CVE-2026-97163. KEV: no. Product: UP (Universal Plugin) (5.0.0-5.2.0, 6.0.0-6.0.29). Brief: Unauthenticated Remote Code Execution in Joomla UP Plugin. Brief link: https://feed.craftedsignal.io/briefs/2026-09-joomla-up-plugin-rce/
The UP (Universal Plugin) for Joomla, developed by lomart.fr, contains a critical vulnerability (CVE-2026-97163) allowing unauthenticated remote code execution. The vulnerability exists in the plugin's "mini" package, which features an on-demand download mechanism for action code hosted on GitHub. During this process, the plugin fetches and unpacks remote ZIP archives into plugins/content/up/actions/, where the PHP code is subsequently executed by the Joomla framework.
Crucially, the plugin implementation fails to perform TLS certificate verification during these GitHub requests, and it lacks sufficient authorization controls for the installation trigger. This allows a network-positioned attacker (performing a Man-in-the-Middle attack) to intercept the request and inject a malicious archive. Exploitation results in the installation of arbitrary PHP code. The vulnerability impacts UP versions 5.0.0 through 5.2.0 and 6.0.0 through 6.0.29. Security patches have been released in versions 5.2.1 and 6.1.0, which enforce authorization and restore TLS verification.
Attack Chain
- Attacker performs reconnaissance to identify Joomla instances running the vulnerable UP plugin using indicators like
plugins/content/up/actions/in HTTP traffic. - Attacker positions themselves as a Man-in-the-Middle between the target Joomla server and GitHub (e.g., via DNS spoofing or BGP hijacking).
- Attacker triggers the plugin's on-demand action installation by sending an unauthenticated request to a component or endpoint that invokes the
upplugin action loader. - The vulnerable plugin initiates a request to the attacker-controlled or spoofed GitHub URL to download an action pack.
- Due to the lack of TLS certificate validation, the plugin accepts a malicious ZIP archive provided by the attacker.
- The plugin automatically extracts the contents of the malicious archive into the
plugins/content/up/actions/directory. - Attacker triggers the newly installed malicious PHP code by navigating to the corresponding plugin action path on the Joomla server.
- Final objective is achieved: remote code execution under the privileges of the web server user.
Impact
Successful exploitation results in full remote code execution on the underlying web server, potentially leading to total system compromise, data exfiltration, and lateral movement within the hosting infrastructure. The vulnerability is rated with a CVSS 4.0 score of 10.0, indicating the highest level of severity.
Recommendation
Prioritized, concrete actions for detection engineering teams:
- Patch Joomla UP plugin to version 5.2.1 or 6.1.0 immediately to enforce authorization and secure the fetch mechanism.
- Implement the Sigma rule provided below to detect anomalous web requests targeting the UP plugin's installation or rendering endpoints.
- Audit the
plugins/content/up/actions/directory for any unexpected files or folders that were not part of the legitimate plugin deployment. - Deploy network-layer inspection to identify unexpected outbound traffic from web servers targeting GitHub or unknown domains when initiated by the web application process.
Immediate actions
Patch Joomla UP plugin to 5.2.1 or 6.1.0
Threat Hunt
Search web logs for requests containing 'option=com_ajax' and 'plugin=up'
Data: Web access logs
Mitigations
Enforce TLS and authorization constraints by upgrading plugin
CVE-2026-97163
Detection coverage 1
Detect CVE-2026-97163 Exploitation Attempt - UP Plugin Probe
highDetects unauthorized attempts to probe or trigger the UP plugin action installation mechanism via com_ajax or render parameters
Detection queries are available on the platform. Get full rules →