/

CVE-2026-100871

Severity:

HIGH RISK

(8.8)

Improper Authentication (CWE-287) in Sylius JWT APIs

CVE-2026-100871

Deferred

Vulnerability type

Category:

Improper Authentication

CWE:

CWE-287

Impact:

Unauthorized Administrative Access

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Sylius can issue JWTs for separate Shop and Admin API contexts without recording which firewall created the token. If a shop customer registers with an administrator's email address, the resulting token may be accepted as that administrator by the Admin API, potentially granting full administrative access.

Affected context

This vulnerability occurs in Sylius deployments that expose separate Shop

and Admin API endpoints protected by JWT authentication. It becomes risky

when identity information, such as an email address, is trusted without

binding the token to the firewall or security context that issued it.

The issue primarily affects flows where a customer can register or control

an account using an email address associated with an administrator.

Exploit preconditions

  • Attack surface: Sylius Shop and Admin API authentication flows
  • Required access: Ability to register or control a shop customer account
  • Trigger point: Authentication to the Admin API using a JWT issued by the

Shop API

  • Why exploitation is possible: The JWT does not identify its issuing

firewall, allowing the Admin API to resolve a matching administrator

identity from a customer-controlled account

Why this happens

The underlying flaw is an authentication-context confusion caused by JWTs

that lack reliable firewall identification. Separate security domains issue

tokens with overlapping identity attributes, such as email addresses, but

the receiving API does not sufficiently verify the token's origin or

intended audience.

This maps to CWE-287: Improper Authentication because the application

accepts an identity assertion without validating all security-context

properties needed to establish that the requester is the claimed

administrator.

Potential impact

  • An attacker could obtain unauthorized administrative access
  • Administrative data could be viewed, changed, or deleted
  • Store configuration and operational workflows may be modified
  • Customer, order, or payment-related information could be exposed
  • Additional compromise could occur if administrative functions affect

server-side integrations or privileged resources

General mitigation guidance

Mitigation generally focuses on preserving strict separation between Shop

and Admin authentication contexts.

Common defensive patterns include:

  • Binding tokens to an explicit issuer, audience, firewall, or security

domain

  • Rejecting tokens issued for one API context when presented to another
  • Validating administrative identity and privileges independently of

customer-controlled registration data

  • Using distinct signing keys, claims, and validation policies for

separate APIs where appropriate

  • Applying least privilege to administrative roles and sensitive endpoints
  • Avoiding email address alone as a trusted indicator of administrative

identity

  • Requiring stronger authentication controls for administrative access

How teams detect issues like this

Detection approaches can include:

  • Static analysis and code review for JWT validation that omits issuer,

audience, firewall, or security-context checks

  • Tests confirming that Shop-issued tokens cannot authenticate to Admin

endpoints

  • Review of account-registration logic for collisions with privileged

identities

  • Authentication logs correlating token origin, endpoint, resolved user,

and assigned roles

  • Policy enforcement requiring separate validation rules for distinct API

security domains

  • Automated security testing that exercises cross-context token reuse

Sources

SourceLink
github.comgithub.com/Sylius/Sylius
github.comgithub.com/Sylius/Sylius/commit/cdfb672a4d174eb2c73159b25cf5b5f44088f45c
github.comgithub.com/Sylius/Sylius/pull/19213
github.comgithub.com/Sylius/Sylius/releases/tag/v2.2.9
github.comgithub.com/Sylius/Sylius/security/advisories/GHSA-f6mx-qxjc-55xf
vulncheck.comvulncheck.com/advisories/sylius-before-1.12.25-1.13.17-1.14.20-2.1.16-and-2.2.9-jwt-audience-confusion-allows-admin-api-authentication

Frequently asked

questions

Yes, where the Shop and Admin APIs are remotely accessible and customer

registration is enabled. Exploitation depends on the deployment exposing the

affected authentication flows and allowing the relevant identity collision.

An attacker generally needs to create or control a shop customer account and

use the resulting authentication token against the Admin API. Existing

administrative credentials are not necessarily required.

Enforce strict token issuer, audience, firewall, and privilege validation at

every API boundary. Tokens from a customer security context should never be

accepted as administrative credentials.

Maintain isolated authentication domains, test cross-context token

acceptance, avoid relying on email addresses as privilege indicators, and

monitor authentication events for unexpected role or endpoint transitions.

Find out what's already
exploitable in your codebase.