Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as any low-privilege user
-
DeliveryObtain another user's import session ID
-
ExploitQuery /api/importer/row/ and /api/importer/mapping/
-
ExecutionServer returns unscoped row_data and column mappings
-
ImpactRead victim's staged import contents
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires a valid authenticated account on the InvenTree instance - but notably any account works, including one with no assigned roles, because the DataImporterPermissionMixin did not scope DataImportRow/DataImportColumnMap querysets to the DataImportSession owner. The attacker must know or enumerate another user's import session identifier and target the /api/importer/row/ or /api/importer/mapping/ endpoints. Exploitation is limited to instances running versions prior to 1.4.0 that have concurrent multi-user import activity (there must be another user's staged import data present to steal), and the vendor explicitly treats authenticated users as trusted, so the practical exposure is between distrustful co-tenants of the same instance rather than against outsiders. No user interaction or elevated privilege is needed beyond basic authentication. |
| Impact | This is a low-severity broken-object-level-authorization flaw (CWE-639 IDOR) that the vendor rates 4.3 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N), and that rating is well-supported: the impact is confidentiality-only (C:L), with no integrity or availability effect, and exploitation requires an authenticated account (PR:L). No EPSS score, no CISA KEV listing, and no public POC were provided, so the exploitation status is 'no public exploit identified at time of analysis.' All signals are consistent and point to LOW real-world priority rather than a high-CVSS-but-overstated issue - in fact the reverse: the CVSS is already low and matches the technical reality. A key mitigating nuance stated explicitly in the advisory is that the InvenTree threat model treats all authenticated instance users as trusted, meaning this is a defense-in-depth hardening fix rather than a boundary breach of an untrusted principal. The 'Authentication Bypass' tag is misleading - nothing is bypassed; an already-authenticated user reads objects they should not be scoped to, which is an authorization (access-control) failure. No conflicting signals between the CVSS vector and the description: both describe authenticated network access. |
| Exploit ScenarioDerived | An authenticated InvenTree user with no assigned roles enumerates or guesses another user's DataImportSession identifier and issues GET requests to /api/importer/row/ and /api/importer/mapping/ scoped to that session, retrieving the victim's staged row_data, data fields, and column mappings. Because querysets were not scoped to the session owner, the server returns the full contents of another user's staged import data. No public exploit code was identified at time of analysis, and exploitation is limited to accounts that already hold valid credentials on the instance. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Broken object-level authorization in InvenTree versions prior to 1.4.0 lets any authenticated user, including an account with no assigned roles, read the staged import data and column mappings belonging to another user's DataImportSession by supplying that session's identifier to the /api/importer/row/ or /api/importer/mapping/ endpoints. The impact is confidentiality-only (CVSS 4.4 base, assessed as 4.3: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) and requires a valid login plus knowledge or enumeration of a victim's session ID on an instance where another user has an active import in progress; no public exploit code has been identified at time of analysis and the flaw is not confirmed actively exploited (CISA KEV). The vendor's threat model treats authenticated instance users as trusted, so the realistic exposure is between distrustful co-tenants of the same instance rather than remote outsiders, and version 1.4.0 resolves it.
RemediationAI
Upgrade to InvenTree 1.4.0 (vendor-released patch: 1.4.0), which scopes DataImportRow and DataImportColumnMap querysets to the requesting session owner, adds explicit ownership checks on the session accept endpoints, and deletes staged rows and column mappings once an import completes; the fix is documented at https://github.com/inventree/InvenTree/security/advisories/GHSA-xjpv-cwpw-7qx8 with the code change in https://github.com/inventree/InvenTree/pull/12169 (commit 3c17367e3c2b23631a5d1d7d9b7d93c4174b8eb1). If immediate upgrade is not possible, the practical compensating controls are to avoid granting non-administrative accounts on shared instances (the exploit only matters when a second account has staged import data), to complete and clean up import sessions promptly so little row data is resident as an attack window, and to restrict access to /api/importer/row/ and /api/importer/mapping/ at the reverse proxy or API gateway to a small set of trusted operator IPs or admin accounts - accepting that this breaks legitimate multi-user import workflows for those users. Rotating or removing low-privilege accounts removes the attacker prerequisite entirely, at the cost of the collaboration features the instance was deployed for.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
InvenTree is a Django/Django-REST-Framework application, and this is a classic CWE-639 authorization-bypass-through-user-controlled-key (IDOR) defect in the importer app. The DRF viewsets DataImportRowList/DataImportRowDetail and DataImportColumnMappingList/DataImportColumnMappingDetail inherited only from DataImporterPermissionMixin, which enforced a coarse model-permission check but never filtered the queryset by the owning DataImportSession - so a request for a row or mapping object simply fetched it by primary key regardless of which user owned the parent session. Session ownership was likewise unchecked in the accept_fields and accept_rows POST handlers, which looked up DataImportSession.objects.get(pk=...) inside a bare try/except that swallowed every exception. The upstream fix (PR 12169, commit 3c17367e3c2b23631a5d1d7d9b7d93c4174b8eb1) introduces a DataImportSessionChildMixin whose get_queryset() returns queryset.filter(session__user=request.user) for non-staff users while preserving staff-wide access, adds explicit PermissionDenied checks on the session POST paths, and narrows the exception handling to DataImportSession.DoesNotExist. The same commit hardens the data lifecycle: when an import session completes, models.py now deletes the staged rows and column mappings (retaining only the session as an audit record), which shrinks the window during which sensitive staged data exists to be stolen.
Know when Inventree gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network-reachable API, no special conditions beyond any authenticated account (PR:L), read-only exposure of staged import data yields C:L with no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
InvenTree is an Open Source Inventory Management System. Prior to 1.4.0, the /api/importer/row/ and /api/importer/mapping/ endpoints do not scope DataImportRow and DataImportColumnMap querysets to the owner of the associated DataImportSession. Any authenticated user, including an account with no assigned roles, can supply another user's import session identifier and retrieve that session's row_data and data fields together with its column mappings. This exposes the full contents of data staged for import across users, although the InvenTree threat model treats authenticated instance users as trusted. This issue is fixed in version 1.4.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Improper Neutralization of Formula Elements in a CSV File in GitHub repository inventree/inventree prior to 0.7.2. Rated
Unrestricted Upload of File with Dangerous Type in GitHub repository inventree/inventree prior to 0.7.2. Rated high seve
Allocation of Resources Without Limits or Throttling in GitHub repository inventree/inventree prior to 0.8.0. Rated medi
Remote code execution in InvenTree 1.2.3 through 1.2.6 allows staff users with settings access to execute arbitrary code
Cross-site Scripting (XSS) - Stored in GitHub repository inventree/inventree prior to 0.8.3. Rated medium severity (CVSS
Cross-site Scripting (XSS) - Stored in GitHub repository inventree/inventree prior to 0.7.2. Rated medium severity (CVSS
Authentication bypass in InvenTree open source inventory management system allows any authenticated user to generate API
Broken object-level authorization in InvenTree prior to 1.4.0 allows any authenticated low-privilege user - or any holde
InvenTree versions prior to 1.4.0 render report and label templates with WeasyPrint's default URL fetcher, so an authent
Authenticated attackers with low-level privileges can exfiltrate sensitive database information from InvenTree open sour
InvenTree prior to version 1.2.3 allows authenticated staff users to inject malicious Jinja2 template code into batch co
InvenTree is an Open Source Inventory Management System. Rated medium severity (CVSS 5.4), this vulnerability is remotel
EUVD-2026-84055
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB