cbcvebase.
CVE-2026-48909
published 2026-06-20

CVE-2026-48909: SP LMS (com_splms) < 4.1.4 by JoomShaper deserializes user-controlled cookie data without validation, enabling an unauthenticated remote attacker to execute…

PriorityP276critical9.5CVSS 4.0
AVNACLATPPRNUINVCHVIHVAHSCHSIHSAHEXCRXIRXARXMAVXMACXMATXMPRXMUIXMVCXMVIXMVAXMSCXMSIXMSAXSXAUXRXVXREXUX
EXPLOIT
EPSS
4.94%
91.6th percentile
SP LMS (com_splms) < 4.1.4 by JoomShaper deserializes user-controlled cookie data without validation, enabling an unauthenticated remote attacker to execute arbitrary code on the server.

Affected

1 ranges
VendorProductVersion rangeFixed in
joomshaper.netsp_lms_extension_for_joomla

Detection & IOCsextracted from sources · hover to see the quote

cookielmsOrders
pathcom_splms/models/cart.php
url/index.php?option=com_splms&view=cart
  • Monitor for HTTP requests to /index.php?option=com_splms&view=cart carrying a cookie named 'lmsOrders' with a base64-encoded value; the payload is a PHP-serialized object targeting Joomla\CMS\Log\Logger\FormattedtextLogger.
  • Alert on deserialization of a PHP object of class 'Joomla\CMS\Log\Logger\FormattedtextLogger' (length 43) arriving via the lmsOrders cookie; the serialized string will contain the class name literal.
  • Detect file-write gadget chain execution: FormattedtextLogger.__destruct() calls File::write($path, $format), which drops a webshell to a PHP-writable path such as /tmp/x.php or /images/x.php.
  • The exploit encodes the PHP payload via hex2bin() to bypass Joomla's 'cmd' input filter (which strips '/', '=', '+'); look for lmsOrders cookie values that are long base64 strings free of '/', '=', and '+' characters.
  • RCE via this gadget chain is only possible on Joomla < 5.2.2; on patched Joomla (>= 5.2.2) FormattedtextLogger.__wakeup() blocks the chain, but PHP Object Injection in com_splms still exists.
  • After the deserialization trigger, watch for a follow-up GET request to the written webshell path with query parameter '?c=id' or '?c=COMMAND', indicating shell verification by the attacker.
  • ·The exploit targets SP LMS (com_splms) versions strictly below 4.1.4; the vulnerable deserialization sink is at line 28 of com_splms/models/cart.php.
  • ·Full RCE via the FormattedtextLogger gadget chain requires Joomla < 5.2.2; on Joomla >= 5.2.2 __wakeup() blocks the chain and only PHP Object Injection (without a public RCE gadget) remains.
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.