CVE-2026-78065
moderateAuthenticated IDOR in J2Store leaks guest checkout addresses on Joomla
J2Store, a Joomla e-commerce extension, contains an insecure direct object reference (CWE-639) in its editAddress() function: the ownership check that redirects non-owners away only ran when the loaded address row had a non-empty user_id belonging to another user. Guest-checkout orders create address rows with an empty user_id, so the check never fired for them; any logged-in account that guesses a small, sequential address_id value had the guest customer's full name, street address, and phone number rendered prefilled into the edit form. An attacker with any low-privileged account on the site can therefore enumerate and read personal information of guest customers. Any Joomla site running J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, or 4.1.0-4.1.6 with guest checkout enabled is affected. Exploitation has not been observed: there is no public proof of concept, the CVE is not in CISA KEV, and EPSS puts 30-day exploitation probability at 0.2%.
What to do: Upgrade J2Store to a release newer than the affected versions of the branch in use (later than 3.3.21, 4.0.21, or 4.1.6). As an interim mitigation, disable guest checkout or restrict which user roles can reach the address-edit endpoint. Check access logs for a single authenticated account rapidly requesting sequential address_id values, which would indicate enumeration of guest customer records.
| j2commerce.com J2Store | 1.0.0 through 3.3.21 (3.x branch) |
| j2commerce.com J2Store | 4.0.0 through 4.0.21 (4.0.x branch) |
| j2commerce.com J2Store | 4.1.0 through 4.1.6 (4.1.x branch) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
- Ecosystems
- Joomla
- Weakness
- CWE-639
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.