CVE-2026-115453 Details
Description
Authorization Bypass Through User-Controlled Key (CWE-639) in the cart and wishlist repositories of MarcosCamara01 Ecommerce Template allows any authenticated user to delete and modify the cart and wishlist rows of any other user, because cartRepository.delete(), cartRepository.updateQuantityInternal() and wishlistRepository.delete() in src/lib/db/drizzle/repositories/ match rows by primary key alone, with no predicate on the owning user, and the per user authorization for those three operations rests on PostgreSQL row level security. The migrations run ALTER TABLE ... ENABLE ROW LEVEL SECURITY and create policies comparing app.current_user_id() with user_id, but never ALTER TABLE ... FORCE ROW LEVEL SECURITY, and PostgreSQL does not apply policies to the role that owns a table. The template uses one DATABASE_URL both to run the migrations, which create the tables, and for the application at runtime, so the application connects as the owner of the tables and the policies do not apply to it. cart_items.id and wishlist.id are sequential bigserial values, so the identifiers of rows belonging to other users can be enumerated, and the update path returns the modified row, which carries the identifier of the user it belongs to. This results in the destruction and modification of cart and wishlist contents belonging to other accounts of the installation.
A vulnerability allowing authorization bypass through user-controlled keys has been identified in the cart and wishlist repositories of the MarcosCamara01 Ecommerce Template. This issue allows any authenticated user to delete or modify the cart and wishlist items of other users. The vulnerability arises because the affected repository functions match rows solely by primary key, without considering the owning user. Although PostgreSQL row-level security (RLS) policies are intended to enforce per-user authorization, they are not applied to the role that owns the database tables, leaving a gap that can be exploited. The vulnerability affects all users on the platform, as identifiers for other users' cart and wishlist items can be easily enumerated.
Users can update to a version of the template that includes the fix for this vulnerability. If an update is not possible, the same effect can be achieved by applying 'ALTER TABLE ... FORCE ROW LEVEL SECURITY' to the affected tables, which would make the existing RLS policies apply to the table owner as well.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 22, 2026CISA-ADP
Assessed Oct 30, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/MarcosCamara01/ecommerce-template/commit/adf7dedbb41894c0bad0b33a26999b0da7e967b7 | Secur0 | Source CodeVendor |
| https://secur0.com/en/cna/cve-list/cve-2026-115453-cross-user-cart-wishlist-idor | Secur0 | AdvisoryRemedy |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-639 | Authorization Bypass Through User-Controlled Key | Secur0 |
Affected Products
| Product | Versions |
|---|---|
| MarcosCamara01 Ecommerce Template | <b139a11c> >= 0.1.0, < adf7dedb |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Oct 30, 2026 | CVE Modified | CISA-ADP |
| Oct 26, 2026 | CVE Modified | Secur0 |
| Oct 22, 2026 | New CVE Received | Secur0 |
Volerion