/

CVE-2026-111277

Severity:

HIGH RISK

(7.5)

Missing Authorization (CWE-862) in NivoCart Invoices

CVE-2026-111277

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Unauthorized Disclosure of Sensitive Personal and Order Data

Severity:

HIGH RISK

(7.5)

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

NivoCart through version 2.5.1 does not adequately authorize access to guest order invoices. An unauthenticated attacker may retrieve invoices for other guest orders by changing the order identifier, exposing personal and purchase information when guest-order records are accessible through the download action.

NivoCart through version 2.5.1 does not adequately authorize access to guest order invoices. An unauthenticated attacker may retrieve invoices for other guest orders by changing the order identifier, exposing personal and purchase information when guest-order records are accessible through the download action.

Affected context

The vulnerability occurs in NivoCart's account/order download functionality when invoice retrieval relies on an order identifier without confirming that the requester is authorized to access the associated order. It primarily affects deployments that permit guest checkout and represent guest orders with a shared customer identifier, such as customer_id 0. The practical exposure depends on order identifier predictability, endpoint accessibility, and whether additional ownership checks are enforced.

The vulnerability occurs in NivoCart's account/order download functionality when invoice retrieval relies on an order identifier without confirming that the requester is authorized to access the associated order. It primarily affects deployments that permit guest checkout and represent guest orders with a shared customer identifier, such as customer_id 0. The practical exposure depends on order identifier predictability, endpoint accessibility, and whether additional ownership checks are enforced.

Exploit preconditions

  • Attack surface: The publicly reachable invoice download action under the account/order functionality
  • Required access: No authenticated account or established session may be required
  • Trigger point: Processing an invoice download request associated with an order identifier
  • Why exploitation is possible: The action may retrieve a guest order based on the supplied identifier without verifying that the requester owns or is otherwise authorized to view that order
  • Enumeration condition: Predictable or discoverable order identifiers can allow access attempts across multiple guest orders
  • Attack surface: The publicly reachable invoice download action under the account/order functionality
  • Required access: No authenticated account or established session may be required
  • Trigger point: Processing an invoice download request associated with an order identifier
  • Why exploitation is possible: The action may retrieve a guest order based on the supplied identifier without verifying that the requester owns or is otherwise authorized to view that order
  • Enumeration condition: Predictable or discoverable order identifiers can allow access attempts across multiple guest orders

Why this happens

The underlying defect is a missing authorization check, mapping to CWE-862: Missing Authorization. The download action appears to treat possession of an order identifier as sufficient authority to retrieve an invoice, rather than enforcing an access-control decision tied to the requester and the specific order. Shared guest-customer records can further weaken ownership validation when they are used without an independent, unguessable authorization token or equivalent control.

The underlying defect is a missing authorization check, mapping to CWE-862: Missing Authorization. The download action appears to treat possession of an order identifier as sufficient authority to retrieve an invoice, rather than enforcing an access-control decision tied to the requester and the specific order. Shared guest-customer records can further weaken ownership validation when they are used without an independent, unguessable authorization token or equivalent control.

Potential impact

  • Unauthorized parties may access guest customer names and contact details
  • Home or delivery addresses may be disclosed
  • Telephone numbers and email addresses may be exposed
  • Purchased items and order totals may be revealed
  • Attackers could enumerate multiple guest orders if identifiers are predictable
  • Exposed information could support phishing, fraud, or privacy violations
  • Unauthorized parties may access guest customer names and contact details
  • Home or delivery addresses may be disclosed
  • Telephone numbers and email addresses may be exposed
  • Purchased items and order totals may be revealed
  • Attackers could enumerate multiple guest orders if identifiers are predictable
  • Exposed information could support phishing, fraud, or privacy violations

General mitigation guidance

Mitigation generally focuses on enforcing object-level authorization for every invoice retrieval request.

Common defensive patterns include:

  • Verify that the authenticated user or guest-specific capability is authorized for the requested order
  • Use short-lived, high-entropy download tokens that are scoped to one order and purpose
  • Avoid treating sequential or client-supplied order identifiers as access credentials
  • Apply consistent authorization checks to guest and registered-customer workflows
  • Return indistinguishable responses for unauthorized and nonexistent records where appropriate
  • Limit invoice data to the minimum necessary and protect sensitive fields
  • Apply least-privilege database and application permissions
  • Rate-limit and monitor repeated invoice lookup attempts

Mitigation generally focuses on enforcing object-level authorization for every invoice retrieval request.

Common defensive patterns include:

  • Verify that the authenticated user or guest-specific capability is authorized for the requested order
  • Use short-lived, high-entropy download tokens that are scoped to one order and purpose
  • Avoid treating sequential or client-supplied order identifiers as access credentials
  • Apply consistent authorization checks to guest and registered-customer workflows
  • Return indistinguishable responses for unauthorized and nonexistent records where appropriate
  • Limit invoice data to the minimum necessary and protect sensitive fields
  • Apply least-privilege database and application permissions
  • Rate-limit and monitor repeated invoice lookup attempts

How teams detect issues like this

High-level detection can include:

  • Static analysis and code review checks for download or invoice actions that query records directly from request parameters
  • Searches for object lookups by order identifiers without adjacent ownership or capability validation
  • Review of guest-order logic that uses shared customer identifiers
  • Authorization tests covering unauthenticated, cross-account, and cross-order access attempts
  • Web application monitoring for sequential or unusually broad order identifier requests
  • Policy enforcement requiring object-level authorization for every sensitive resource endpoint
  • Neutral automated review rules that flag direct access to customer or order records from untrusted identifiers

High-level detection can include:

  • Static analysis and code review checks for download or invoice actions that query records directly from request parameters
  • Searches for object lookups by order identifiers without adjacent ownership or capability validation
  • Review of guest-order logic that uses shared customer identifiers
  • Authorization tests covering unauthenticated, cross-account, and cross-order access attempts
  • Web application monitoring for sequential or unusually broad order identifier requests
  • Policy enforcement requiring object-level authorization for every sensitive resource endpoint
  • Neutral automated review rules that flag direct access to customer or order records from untrusted identifiers

Sources

SourceLink
github.comgithub.com/nivocart/nivocart
github.comgithub.com/nivocart/nivocart/blob/5bc2c3fc7caed9846b58959183f8ccf599cd4399/upload/catalog/controller/account/order.php#L695-L770
github.comgithub.com/nivocart/nivocart/blob/5bc2c3fc7caed9846b58959183f8ccf599cd4399/upload/catalog/model/account/order.php#L11-L12
github.comgithub.com/nivocart/nivocart/issues/26
vulncheck.comvulncheck.com/advisories/nivocart-through-2.5.1-guest-order-invoice-disclosure-via-account-order-download

Frequently asked

questions

Yes. The affected invoice download action may be reachable over the application interface, and exploitation may not require a local foothold. Exposure depends on whether the endpoint is publicly accessible and whether effective authorization checks exist.

The described behavior allows unauthenticated access attempts. An account or valid session should not be assumed to be required when guest invoice retrieval is exposed without ownership validation.

Enforce a server-side authorization decision for every invoice request. A requester should need either an authenticated relationship to the order or a separate, high-entropy, narrowly scoped guest access capability; an order identifier alone should not grant access.

Apply object-level authorization consistently across guest and registered-user flows, test cross-object access during security reviews, avoid predictable identifiers as credentials, and monitor for enumeration patterns.

Yes. The affected invoice download action may be reachable over the application interface, and exploitation may not require a local foothold. Exposure depends on whether the endpoint is publicly accessible and whether effective authorization checks exist.

The described behavior allows unauthenticated access attempts. An account or valid session should not be assumed to be required when guest invoice retrieval is exposed without ownership validation.

Enforce a server-side authorization decision for every invoice request. A requester should need either an authenticated relationship to the order or a separate, high-entropy, narrowly scoped guest access capability; an order identifier alone should not grant access.

Apply object-level authorization consistently across guest and registered-user flows, test cross-object access during security reviews, avoid predictable identifiers as credentials, and monitor for enumeration patterns.

Find out what's already
exploitable in your codebase.