Skip to content
Heist/ feed
High

Cross user deletion and modification of cart and wishlist rows in Ecommerce Template through unscoped primary key queries

Type: advisorySource: Official CVE List1 source record

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.

Announced Source revision 1
Original source ↗

CVE-2026-115453

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-115453

Ecommerce Template

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://github.com/MarcosCamara01/ecommerce-template",
    "vendor": "MarcosCamara01",
    "product": "Ecommerce Template",
    "versions": [
      {
        "status": "affected",
        "version": "b139a11c7bfab82b9c54c738b9a5d6015b439972",
        "lessThan": "adf7dedbb41894c0bad0b33a26999b0da7e967b7",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "src/lib/db/drizzle/repositories/cart.repository.ts",
      "src/lib/db/drizzle/repositories/wishlist.repository.ts",
      "src/lib/db/drizzle/connection.ts"
    ],
    "defaultStatus": "unaffected"
  }
]
Related CVEs
CVE-2026-115453

Source reference: /cveMetadata/cveId

Publisher severity

high

Source reference: /containers/cna/metrics

Event
#50378 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement