Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach InvenTree API over network
-
DeliverySend unauthenticated GET to /api/plugin/settings/
-
ExploitEndpoint skips IsAuthenticated check
-
ExecutionEnumerate plugin names/keys/config metadata
-
ImpactUse disclosed data for reconnaissance
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special conditions - remote unauthenticated exploitation against default configurations of InvenTree prior to 1.4.0. The affected endpoints (/api/plugin/settings/, per-plugin settings via PluginSettingList/PluginAllSettingList/PluginSettingDetail) are reachable by anonymous callers because GlobalSettingsPermissions permits safe methods and AuthRequiredMiddleware exempts /api/ paths. Limiting factors: only GET/safe-method reads are exposed (no modification), protected secret values remain masked as three asterisks so only metadata and non-secret config leak, and at least one plugin must be installed/active to yield meaningful plugin data. Impact is confined to information disclosure with no integrity or availability effect. |
| Impact | This is a genuinely unauthenticated information-disclosure flaw, but a low-severity one. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N = 5.3) is internally consistent with the description and the source code: PluginSettingList, PluginAllSettingList, and PluginSettingDetail were set to GlobalSettingsPermissions (which returns true for safe/GET methods) without the IsAuthenticated class used by sibling endpoints, and AuthRequiredMiddleware exempts /api/ paths - so an anonymous caller reaches the data. The fix diff (adding permissions.IsAuthenticated to each endpoint, API v506) confirms the root cause precisely. Confidentiality is correctly scored Low: only plugin names, setting keys, descriptions, types, choices, and non-secret config leak, while protected secrets stay masked as three asterisks (I:N/A:N are correct - no write or availability impact). No EPSS score, KEV entry, or public POC was supplied; absence of these signals plus the metadata-only impact means this is a real but low-priority hardening issue, not an urgent exploitation risk. No signals conflict - the network vector, low complexity, and no-auth requirement all align with the described anonymous /api/plugin/settings/ access. |
| Exploit ScenarioDerived | An attacker who can reach an InvenTree instance's HTTP(S) API - without any account - sends a GET to /api/plugin/settings/ or a per-plugin settings endpoint and receives the list of installed plugins along with their setting keys, descriptions, types, choices, and non-secret configuration values. This reconnaissance reveals the deployment's plugin footprint and configuration posture (secret values remain masked), aiding targeting of further attacks. No public POC or active exploitation was reported in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Unauthenticated information disclosure in InvenTree prior to 1.4.0 lets a remote caller retrieve plugin names, setting keys, descriptions, types, choices and non-secret configuration values through /api/plugin/settings/ and the per-plugin settings endpoints, because PluginSettingList, PluginAllSettingList and PluginSettingDetail registered GlobalSettingsPermissions without the IsAuthenticated permission used by equivalent global-settings endpoints. Exposure is confined to metadata and non-secret configuration: protected secret values remain masked as three asterisks, only safe methods are readable, and at least one plugin must be installed and active for the disclosure to be meaningful, so the practical impact is limited. The assessed CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N (score 5.3), confirming remote unauthenticated exploitation with low confidentiality impact and no integrity or availability effect; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: InvenTree 1.4.0 (release tag https://github.com/inventree/InvenTree/releases/tag/1.4.0, via pull request https://github.com/inventree/InvenTree/pull/12168 and commit 6c18e6402005c0f105f88dfba4aaa11cf990a7e0); upgrade to that version or later, as detailed in advisory GHSA-45f6-v6jq-99f7. If upgrading is not immediately possible, the most direct compensating control is to block anonymous GET access to the plugin settings paths at a reverse proxy or API gateway (for example, deny requests without valid session or token credentials to /api/plugin/settings/ and per-plugin setting URLs, or require authentication for all /api/plugin/ paths overall); the trade-off is that legitimate anonymous clients or integrations that read plugin metadata will break, and path-based filtering must be maintained as route paths evolve. Reducing the attack surface by deactivating unused plugins lowers the amount of enumerable metadata but costs functionality and only mitigates rather than eliminates the flaw, since the underlying endpoints remain reachable for any plugin left active. Because protected secret values are already masked, credential rotation is not required for this specific issue, and no integrity or availability mitigations are needed given the read-only nature of the exposure.
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's REST API is built on Django REST Framework, where view classes declare permission_classes lists that are evaluated as logical AND. The affected classes (PluginSettingList as a ListAPI, PluginAllSettingList as an APIView, PluginSettingDetail as a RetrieveUpdateAPI, plus PluginDetail) relied solely on the project's GlobalSettingsPermissions class, which returns True for safe HTTP methods such as GET, HEAD and OPTIONS, combined with the AllowAnyOrReadScope helper. Because AuthRequiredMiddleware explicitly exempts /api/ paths from its authentication gate, no other layer enforced authentication on these endpoints, so anonymous clients could read plugin setting metadata. The root cause is CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), specifically a missing authorization check rather than a memory-safety or injection flaw. The upstream fix in pull request 12168 adds permissions.IsAuthenticated ahead of GlobalSettingsPermissions on PluginDetail, PluginSettingList, PluginAllSettingList, PluginSettingDetail and ObservabilityEnd, bumps INVENTREE_API_VERSION from 505 to 506, and adds regression tests (PluginUnauthenticatedAccessTest) asserting HTTP 401 for anonymous requests. The CPE cpe:2.3:a:inventree:inventree:*:*:*:*:*:*:*:* reflects that the wildcard covers all releases before the fixed version.
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:N/UI:N/S:U/C:L/I:N/A:N
Anonymous network GET reaches the endpoint (AV:N/AC:L/PR:N/UI:N); only non-secret metadata leaks (C:L), with no write or availability impact (I:N/A:N).
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, PluginSettingList, PluginAllSettingList, and PluginSettingDetail set GlobalSettingsPermissions without the IsAuthenticated permission used by the project default and equivalent global-settings endpoints. GlobalSettingsPermissions returns true for safe methods, while AuthRequiredMiddleware exempts /api/ paths, so an unauthenticated caller can retrieve plugin names, setting keys, descriptions, types, choices, and non-protected configuration values through /api/plugin/settings/ and the per-plugin settings endpoints. Protected secret values remain masked as three asterisks, limiting the issue to metadata and non-secret configuration disclosure. 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
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-84057
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB