Description
InvenTree is an Open Source Inventory Management System. Prior to 1.4.0, POST /api/barcode/ accepts an attacker-synthesized internal JSON barcode containing a lowercase model label and integer primary key, while BarcodeView uses IsAuthenticatedOrReadScope and requires only authentication or a general read scope. The built-in barcode plugin selects the object with model.objects.get(pk=...), and InvenTreeBarcodeMixin.format_matched_response() returns the complete model serializer output as instance without checking the caller's per-model view role. A low-privilege user can enumerate primary keys for parts, stock, locations, supplier and manufacturer parts, orders, and builds to disclose commercially sensitive inventory, pricing, supplier, customer, and order data. This issue is fixed in version 1.4.0.
Published: 2026-09-21
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Information Disclosure
Action: Apply Patch
AI Analysis

Impact

A crafted POST request to the /api/barcode/ endpoint can send an internal JSON payload that includes a model label and primary key. Because the API does not enforce the specific view role on the model, the response contains the full serialized data, exposing sensitive inventory, pricing, supplier, customer, and order information to any authenticated user. This violation stems from improper authority checks (CWE‑639) and inadequate access control over serialized data (CWE‑863), as the protection relies solely on authentication or a general read scope and fails to enforce per‑model view role constraints, allowing low‑privilege actors to enumerate numerous objects across parts, stock, locations, suppliers, and builds.

Affected Systems

The vulnerability applies to the open‑source InvenTree Inventory Management System, as shipped before version 1.4.0. Any deployment that has not yet upgraded to 1.4.0 is susceptible, regardless of the specific instance or plugins in use. The affected areas include models for parts, stock, locations, supplier and manufacturer parts, orders, and builds.

Risk and Exploitability

The CVSS score is 6.5, indicating a moderate severity. No EPSS score is published, and the flaw is not currently listed in CISA’s KEV catalog, suggesting limited known exploitation. However, the attack path is straightforward: a remote attacker who can authenticate with a low‑privilege account can send the malformed payload and receive detailed system information. Because the data is returned as JSON over the API, the attacker gains complete visibility into unusually sensitive operational data that would otherwise be restricted by more granular view roles.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to InvenTree 1.4.0 or later to apply the fix that restricts data exposure in the barcode API.
  • If an upgrade is not immediately feasible, restrict access to the /api/barcode/ endpoint to users with explicit "scan" or higher‑level permissions, or consider disabling the endpoint entirely until a patch is available.
  • Review and apply server‑side permission checks for model serialization: modify or extend the InvenTreeBarcodeMixin.format_matched_response() routine to enforce per‑model view role constraints before returning full data.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 21 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Inventree
Inventree inventree
Vendors & Products Inventree
Inventree inventree

Mon, 21 Sep 2026 19:00:00 +0000

Type Values Removed Values Added
Description InvenTree is an Open Source Inventory Management System. Prior to 1.4.0, POST /api/barcode/ accepts an attacker-synthesized internal JSON barcode containing a lowercase model label and integer primary key, while BarcodeView uses IsAuthenticatedOrReadScope and requires only authentication or a general read scope. The built-in barcode plugin selects the object with model.objects.get(pk=...), and InvenTreeBarcodeMixin.format_matched_response() returns the complete model serializer output as instance without checking the caller's per-model view role. A low-privilege user can enumerate primary keys for parts, stock, locations, supplier and manufacturer parts, orders, and builds to disclose commercially sensitive inventory, pricing, supplier, customer, and order data. This issue is fixed in version 1.4.0.
Title InvenTree: Barcode-scan API (`POST /api/barcode/`) returns full serialized object data without enforcing the model's view role
Weaknesses CWE-639
CWE-863
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

Inventree Inventree
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-21T18:45:38.373Z

Reserved: 2026-07-10T18:59:00.047Z

Link: CVE-2026-61744

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-21T19:17:07.190

Modified: 2026-09-21T19:17:07.190

Link: CVE-2026-61744

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T21:30:11Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key

  • CWE-863

    Incorrect Authorization