CVE-2026-47740: shopper/framework Authorization Bypass Vulnerability

HIGH
Advisory Identifier: GHSA-f946-9qp6-vgch
CVSS 8.1
CWE-862 CWE-285
Published
Advisory Summary

CVE-2026-47740 is a HIGH (CVSS 8.1) authorization bypass vulnerability (CWE-862: Missing Authorization) affecting shopper/framework libraries in the Packagist ecosystem. The issue involves authorization bypass in multiple livewire admin components. Remediation is available by upgrading affected packages to version 2.8.0.

CVE-2026-47740 at a Glance

CVE Identifier CVE-2026-47740
GHSA Identifier GHSA-f946-9qp6-vgch
Severity HIGH
CVSS v3.1 Base Score 8.1
CWE Classification CWE-862: Missing Authorization
Affected Product shopper/framework
Package Ecosystem Packagist
Published Date
Last Updated

Security Impact

CVSS: 8.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability None (A:N)

How to Fix CVE-2026-47740

To remediate this vulnerability, upgrade all affected shopper/framework dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

shopper/framework fixed: 2.8.0
Upgrade shopper/framework to 2.8.0
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for shopper/framework

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-47740, inspect your project dependencies for shopper/framework:

inspect dependencies for shopper/framework

Analyze the terminal output to locate any version of shopper/framework in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.8.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-862: Missing Authorization, where the product does not perform an authorization check when an actor attempts to access a resource or perform an action. In shopper/framework, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

## Impact Multiple Livewire components in the admin panel allowed an authenticated low-privilege user to mutate data without the required permission: - Order detail Filament actions (cancel, mark paid, mark complete, capture payment, archive, start processing) were callable with `read_orders` only and did not require `edit_orders`. `capturePayment` could trigger an actual PSP capture. - Order shipments table actions (mark delivered, edit tracking) were callable with `browse_orders` only. - Sub-form Livewire components for products (Edit, Inventory, Seo, Shipping, Files) had no authorization on `store()`, so any authenticated panel user could mutate product data without `edit_products`. - `Settings/Team/Index` had no `mount()` authorization at all — any authenticated user could create roles and delete other users. - `Settings/Team/RolePermission` gated its write actions on the read-only `view_users` permission, allowing privilege escalation via the RBAC system itself. - `PaymentMethods`, `Currencies`, `Carriers` table toggles and per-record actions had no per-action permission check. - `Customers/Create::store()` re-passed a Hidden `_password` form field into the create payload. Several public Eloquent model properties on Livewire components were not `#[Locked]`, allowing client-side ID tampering. A stored XSS surface existed on the product barcode field, which is rendered through `DNS1DFacade::getBarcodeHTML()` with `{!! !!}`. ## Patches Fixed in `v2.8.0`. Upgrade via: ```bash composer require shopper/admin:^2.8 shopper/cart:^2.8 shopper/core:^2.8 ``` ```shell php artisan migrate ``` ## Workarounds None. Upgrade to `v2.8.0`. ## Resources - Pull request: https://github.com/shopperlabs/shopper/pull/511 - CWE-862 Missing Authorization - CWE-285 Improper Authorization

CVE-2026-47740 Affected shopper/framework Versions

1 component(s)
Fixed Versions:
2.8.0
Product / Package Ecosystem Affected Versions Fixed Version
shopper/framework
Packagist
< 2.8.0
2.8.0

References

Frequently Asked Questions

What is CVE-2026-47740?
CVE-2026-47740 is a security vulnerability in shopper/framework involving Authorization bypass in multiple Livewire admin components under CWE-862: Missing Authorization.
Which shopper/framework versions are affected?
Affected versions include releases prior to 2.8.0 across affected packages: shopper/framework.
What version fixes CVE-2026-47740?
Upgrading to 2.8.0 (or the latest patched release for your respective branch) resolves the vulnerability.
Is shopper/framework affected?
Yes, shopper/framework is affected in releases prior to 2.8.0. Upgrade your dependency to 2.8.0 or later.
What is the CVSS score of CVE-2026-47740?
CVE-2026-47740 has a CVSS v3.1 base score of 8.1 (HIGH) with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N.
What CWE is associated with CVE-2026-47740?
CVE-2026-47740 is classified under CWE-862: Missing Authorization (The product does not perform an authorization check when an actor attempts to access a resource or perform an action.).
How can I check Packagist dependencies for CVE-2026-47740?
Run the dependency tree command: 'inspect dependencies for shopper/framework'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-f946-9qp6-vgch",
  "modified" : "2026-06-08T20:07:22Z",
  "published" : "2026-05-18T16:34:23Z",
  "aliases" : [ "CVE-2026-47740" ],
  "summary" : "shopper/framework: Authorization bypass in multiple Livewire admin components",
  "details" : "## Impact\n\nMultiple Livewire components in the admin panel allowed an authenticated low-privilege user to mutate data without the required permission:\n\n- Order detail Filament actions (cancel, mark paid, mark complete, capture payment, archive, start processing) were callable with `read_orders` only and did not require `edit_orders`. `capturePayment` could trigger an actual PSP capture.\n- Order shipments table actions (mark delivered, edit tracking) were callable with `browse_orders` only.\n- Sub-form Livewire components for products (Edit, Inventory, Seo, Shipping, Files) had no authorization on `store()`, so any authenticated panel user could mutate product data without `edit_products`.\n- `Settings/Team/Index` had no `mount()` authorization at all — any authenticated user could create roles and delete other users.\n- `Settings/Team/RolePermission` gated its write actions on the read-only `view_users` permission, allowing privilege escalation via the RBAC system itself.\n- `PaymentMethods`, `Currencies`, `Carriers` table toggles and per-record actions had no per-action permission check.\n- `Customers/Create::store()` re-passed a Hidden `_password` form field into the create payload.\n\nSeveral public Eloquent model properties on Livewire components were not `#[Locked]`, allowing client-side ID tampering.\n\nA stored XSS surface existed on the product barcode field, which is rendered through `DNS1DFacade::getBarcodeHTML()` with `{!! !!}`.\n\n## Patches\n\nFixed in `v2.8.0`. Upgrade via:\n\n```bash\ncomposer require shopper/admin:^2.8 shopper/cart:^2.8 shopper/core:^2.8\n```\n\n```shell\nphp artisan migrate\n```\n\n## Workarounds\n\nNone. Upgrade to `v2.8.0`.\n\n## Resources\n\n- Pull request: https://github.com/shopperlabs/shopper/pull/511\n- CWE-862 Missing Authorization\n- CWE-285 Improper Authorization",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "shopper/framework"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "2.8.0"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/shopperlabs/shopper/security/advisories/GHSA-f946-9qp6-vgch"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-47740"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/shopperlabs/shopper/issues/510"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/shopperlabs/shopper/pull/511"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/shopperlabs/shopper/commit/fcd0c5920588702df5b874f432b1042abd77a50b"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/shopperlabs/shopper"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/shopperlabs/shopper/releases/tag/v2.8.0"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-285", "CWE-862" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-05-18T16:34:23Z",
    "nvd_published_at" : "2026-05-29T19:16:25Z"
  }
}