Description
Missing Authentication for Critical Function (CWE-306) in the checkout session lookup handler (src/app/api/stripe/checkout_sessions/route.ts), exposed at GET /api/stripe/checkout_sessions, in MarcosCamara01 Ecommerce Template before commit 91e273c allows a remote, unauthenticated attacker holding a valid Stripe Checkout Session id (cs_...) to retrieve the full session object, including the buyer's name, email, phone, billing address, amount paid and internal userId, because the GET handler calls stripe.checkout.sessions.retrieve() and returns the result without checking for an authenticated session or session ownership. Sibling endpoints such as POST /api/stripe/payment already enforced authentication via auth.api.getSession(); this endpoint had no access control whatsoever. The session_id is exposed in the buyer's own browser URL after payment (success_url = /result?session_id={CHECKOUT_SESSION_ID}), so it leaks through Referer headers, analytics tools, server access logs and shared-machine browser history, resulting in disclosure of the buyer's personal data to an unauthenticated actor.
Published: 2026-09-14
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthenticated disclosure of buyer PII
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises from a missing authentication check in the checkout session lookup handler of MarcosCamara01 Ecommerce Template. A remote attacker who possesses a valid Stripe Checkout Session identifier can issue a GET request to /api/stripe/checkout_sessions and receive the entire session object, which contains the buyer’s name, email, phone number, billing address, amount paid, and internal user identification. The flaw is a classic authentication bypass (CWE-306) that enables the disclosure of personally identifiable information without any authorization.

Affected Systems

The flaw affects all deployments of MarcosCamara01 Ecommerce Template that have not incorporated the patch commit 91e273c. No explicit version numbers are listed in the advisory, but the issue exists in releases prior to that commit. The affected endpoint is GET /api/stripe/checkout_sessions, while sibling POST endpoints already enforce authentication.

Risk and Exploitability

The CVSS v3 score of 8.2 indicates a medium‑to‑high severity, but the EPSS score is not available, making it unclear how often attackers are turning this exploit into practice. The vulnerability is listed outside of CISA’s KEV catalog. Attackers can obtain the session identifier from the buyer’s browser after payment, as it is included in the success URL and can leak through Referer headers, analytics tools, server logs, or shared‑machine history. Once the identifier is captured, the attacker can recover full checkout session details for the victim, resulting in a privacy breach of sensitive customer data. The lack of authentication means the flaw is readily exploitable by any actor who can glean the session ID, and the potential impact includes identity theft, phishing, or social engineering attacks using the disclosed data.

Generated by OpenCVE AI on September 15, 2026 at 10:25 UTC.

Remediation

Vendor Solution

Update to a build including commit 91e273c, which requires an authenticated session (401 otherwise) and verifies that checkoutSession.metadata.userId matches the authenticated user (403 otherwise) before returning the checkout session.


OpenCVE Recommended Actions

  • Apply the patch that includes commit 91e273c so that the checkout session endpoint requires an authenticated session and verifies that the session metadata.userId matches the authenticated user before returning the session object.
  • If an immediate upgrade is not possible, protect the GET /api/stripe/checkout_sessions endpoint by restricting access only to authenticated users and performing an ownership check against the session metadata.
  • Rewrite the success URL to avoid exposing the raw Checkout Session ID, for example by using opaque tokens or performing the lookup server‑side to prevent leakage through Referer headers, analytics tools, and logs.
  • Monitor server logs and analytics for unexpected exposure of checkout session identifiers and investigate any suspicious activity.

Generated by OpenCVE AI on September 15, 2026 at 10:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 15 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 14 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Description Missing Authentication for Critical Function (CWE-306) in the checkout session lookup handler (src/app/api/stripe/checkout_sessions/route.ts), exposed at GET /api/stripe/checkout_sessions, in MarcosCamara01 Ecommerce Template before commit 91e273c allows a remote, unauthenticated attacker holding a valid Stripe Checkout Session id (cs_...) to retrieve the full session object, including the buyer's name, email, phone, billing address, amount paid and internal userId, because the GET handler calls stripe.checkout.sessions.retrieve() and returns the result without checking for an authenticated session or session ownership. Sibling endpoints such as POST /api/stripe/payment already enforced authentication via auth.api.getSession(); this endpoint had no access control whatsoever. The session_id is exposed in the buyer's own browser URL after payment (success_url = /result?session_id={CHECKOUT_SESSION_ID}), so it leaks through Referer headers, analytics tools, server access logs and shared-machine browser history, resulting in disclosure of the buyer's personal data to an unauthenticated actor.
Title Missing authentication in Ecommerce Template checkout session endpoint allows unauthenticated disclosure of buyer PII
First Time appeared Marcoscamara01
Marcoscamara01 ecommerce-template
Weaknesses CWE-306
CPEs cpe:2.3:a:marcoscamara01:ecommerce-template:*:*:*:*:*:*:*:*
Vendors & Products Marcoscamara01
Marcoscamara01 ecommerce-template
References
Metrics cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Marcoscamara01 Ecommerce-template
cve-icon MITRE

Status: PUBLISHED

Assigner: Secur0

Published:

Updated: 2026-09-15T19:17:02.930Z

Reserved: 2026-09-14T10:11:59.785Z

Link: CVE-2026-90896

cve-icon Vulnrichment

Updated: 2026-09-15T19:16:58.220Z

cve-icon NVD

Status : Received

Published: 2026-09-14T21:17:42.740

Modified: 2026-09-15T20:19:21.457

Link: CVE-2026-90896

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-15T10:30:12Z

Weaknesses
  • CWE-306

    Missing Authentication for Critical Function