CVE-2026-78081
HighCVSS 7.1Exploitation Probability (EPSS)
Low risk5th percentile - higher than 5% of all known CVEs
Summary
The Joomla extension J2Store (versions 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7) lacks CSRF protection on cart, checkout, and profile controllers. A forged request riding a victim's active session can silently overwrite billing or shipping address before order confirmation, potentially redirecting goods to an attacker-controlled address.
Risk Assessment
Risk to customers: an attacker can alter the shipping address of an order, potentially leading to theft of goods. No cross-account data access, but order integrity is compromised.
Recommendation
Update J2Store to a patched version. Additionally, consider implementing CSRF tokens in forms.
Other vulnerabilities in J2Store
See all- CVE-2026-78065High
Joomla Extension - j2commerce.com - Guest checkout address disclosure to any authenticated user (IDOR) in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - `editAddress()` redirected non-owners away only when the loaded address row had a **non-empty** `user_id` belonging to someone else. Guest-checkout address rows have an empty `user_id`, so that check never triggered for them — any logged-in account guessing a small, sequential `address_id` got a guest customer's full name, street address, and phone number rendered prefilled into the edit form.
- CVE-2026-78064High
Joomla Extension - j2commerce.com - Anonymous cart-record tampering via inherited FOF `save` task in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - `fof.xml` grants the `carts` view's tasks a wildcard `true` ACL, and FOF only enforces CSRF tokens on back-end HTML requests, not on front-end `format=raw` requests. `J2StoreControllerCarts` already scoped `remove()` to the caller's own session, but never overrode the generic FOF `save` task, so it remained reachable to insert new cart rows with an attacker-chosen `user_id`/`session_id`, or overwrite an existing row by id.
- CVE-2026-78000Medium
Joomla Extension - j2commerce.com - Reflected XSS via `filter_tag`, `pricefrom` and `priceto` in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - Four task handlers accepted a base64-encoded URL from user input and redirected to it without validating the destination host, enabling phishing using the shop's trusted domain. No authentication required.
- CVE-2026-77999High
Joomla Extension - j2commerce.com - Unauthenticated PayPal callback forgery leading to order confirmation fraud in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - The PayPal IPN listener's signature check (`_validateIPN()`) accepted `UNVERIFIED` and any non-`INVALID` response as valid, made its verification request with `CURLOPT_SSL_VERIFYPEER` disabled, and stored its verdict in a field nothing downstream ever checked — so processing continued regardless of the outcome. Separately, the paid-amount comparison only ran when `mc_gross` was a positive number; omitting the field from the POST body (`floatval(null) == 0`) skipped the check entirely. Combined with a merchant-configured `receiver_email` and a sequential, enumerable order id read from the `custom` field, an anonymous POST was enough to move a pending order straight to `CONFIRMED` with no payment, or force another customer's pending order to `FAILED`. `paypalv2.php` performed no amount check under any circumstances.
- CVE-2026-78069Critical
Joomla Extension - j2commerce.com - Missing authorization on Apps controller delegation chain in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - J2StoreControllerApps's appTask delegation path instantiates app-plugin controllers with no ACL check anywhere in the code. Additionally, applocalizationdata::getInstallerTool() used a caller-influenced table name with no allow-list, enabling path-traversal-capable file read/execute.
- CVE-2026-82191Medium
Joomla Extension J2Store in versions 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7 reflects unescaped request data into the PayPal notify redirect. A crafted link to the paypal notify endpoint, if followed by a victim's browser, causes the redirect to com_j2store's checkout controller to carry attacker-chosen query parameters.
- CVE-2026-82190Medium
Joomla Extension J2Store in versions 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7 uses a predictable/forgeable order access token. Anyone who obtains the site's Joomla secret can compute a valid access token for any order without placing one, gaining guest access to order details and digital downloads.
- CVE-2026-82189High
In the Joomla extension J2Store, any order can be marked Failed by anyone without authentication. An attacker can mass-fail pending orders to disrupt revenue and force manual reprocessing, or flip already-fulfilled orders back to FAILED to cause operational confusion. Unlike the earlier confirmation-fraud issue, this requires no correct payment amount or transaction data at all.
- CVE-2026-81568High
In the Joomla extension J2Store, J2StoreModelOrderdownloads::getFilePath() built the on-disk path to a purchased digital download by concatenating the configured attachment folder with the product file's stored product_file_save_name, using only JPath::clean() (which normalises separators but does not resolve or reject .. segments) and a plain JFile::exists() check. If a product file's product_file_save_name contained a ../ traversal segment, any customer holding a valid download token/pid pair could have the traversal resolve to a path outside the attachment folder and download any file readable by the web server (e.g. configuration.php).
- CVE-2026-81567High
The Joomla extension J2Store (versions 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7) contains an unauthenticated blind SQL injection vulnerability in the storefront product list. An attacker can remotely extract arbitrary database content, such as customer records, order data, or stored tokens, using boolean- or time-based inference.
Original NVD description (English source)
Joomla Extension - j2commerce.com - Missing CSRF protection on cart, checkout and myprofile controllers in J2Store 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7 - A forged request riding a victim's active checkout session could silently overwrite the billing or shipping address before order confirmation — the most consequential sub-case, since it opens the door to redirecting a paid order's goods to an attacker-controlled address — or tamper with a saved profile address via `saveAddress()`. As before, each forged request executes with only the victim's own session privileges, so there is no cross-account data access.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

