Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Owner of one company
-
DeliveryEnumerate global user IDs via GET /api/v1/users/{user}
-
ExploitRead cross-tenant user records
-
ExecutionPUT overwrite email/password + reassign company
-
ImpactFull cross-tenant account takeover
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 multi-company InvoiceShelf installation (single-company deployments are not exploitable cross-tenant) AND the attacker must already be authenticated as an Owner of at least one company on that installation (PR:H). Given those conditions, exploitation is remote, low-complexity, and needs no user interaction: the /api/v1/users/{user} endpoints resolve the target by global primary key while UserPolicy validates only the requester's own header-company, so an Owner can read and overwrite any user in any other company. The limiting factors are the multi-tenant deployment requirement and the Owner-level privilege prerequisite; there is no anonymous/unauthenticated path. |
| Impact | This is a genuinely high-severity multi-tenant authorization flaw, not a padded high-CVSS number. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N, 8.7) is internally consistent with the description: network-exploitable via a REST API, low complexity (a single crafted GET/PUT to /api/v1/users/{user}), scope change (S:C) because a compromise crosses from the attacker's tenant into other companies' data, and high confidentiality/integrity impact (cross-tenant disclosure plus full account takeover). The one caveat is PR:H - exploitation requires the attacker to already hold an Owner role in at least one company on the installation, so this is an insider/authenticated-tenant escalation rather than a fully anonymous internet attack; that materially lowers real-world reach versus a PR:N flaw. No EPSS score, no CISA KEV listing, and no confirmed public POC are present in the input, so there is no evidence of active or automated exploitation - the risk is real but conditional on multi-company deployments and a hostile/compromised Owner account. Priority is high specifically for shared/SaaS-style InvoiceShelf installations hosting multiple independent companies; single-company deployments are effectively unaffected. Tag 'Authentication Bypass' is inaccurate - CWE-639 and the description describe an authorization (IDOR) failure, not authentication bypass. |
| Exploit ScenarioDerived | An attacker who legitimately holds (or has compromised) an Owner account for one company on a shared InvoiceShelf installation sends GET /api/v1/users/{id} iterating global user IDs to read other tenants' user records, then issues PUT /api/v1/users/{id} to overwrite a victim's email and password and reassign their company - taking over accounts belonging to entirely different companies. No POC is referenced in the advisory, but the attack requires only ordinary API calls and is low-complexity (AC:L) once the attacker has any Owner role. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Cross-tenant account takeover in InvoiceShelf before 2.4.1 allows an authenticated Owner of one company to read and overwrite any user account in another company on the same multi-company installation by abusing the /api/v1/users/{user} endpoints. The flaw is an authorization bypass through user-controlled key (CWE-639): the API resolves the target by global primary key while UserPolicy validates only the requester's own header-company, enabling cross-tenant disclosure and full account takeover via email/password overwrite plus company re-assignment. No public exploit identified at time of analysis; exploitation requires Owner-level privileges (PR:H) and a multi-company deployment, but is remote, low-complexity, and high-impact when those conditions are met.
RemediationAI
Vendor-released patch: upgrade to InvoiceShelf 2.4.1, which fixes the issue. The vendor advisory is at https://github.com/InvoiceShelf/InvoiceShelf/security/advisories/GHSA-vgx6-6cqr-m8qr. If immediate upgrade is not possible, restrict Owner accounts to trusted users only, audit multi-company installations for unauthorized company re-assignments or credential changes, and consider temporarily limiting access to /api/v1/users/{user} endpoints to required roles or IP ranges. These compensating controls do not fully remove the cross-tenant risk and should be replaced by the 2.4.1 upgrade as soon as feasible.
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
InvoiceShelf is an open-source multi-company invoicing, expense, and payment tracking application. The vulnerability is an instance of CWE-639, Authorization Bypass Through User-Controlled Key, where GET/PUT /api/v1/users/{user} use the target user's global primary key for lookup. UserPolicy only verifies that the requester is an Owner of their own header-company; it does not verify that the target user belongs to that company. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N confirms remote, low-complexity exploitation requiring high privileges (Owner), no user interaction, and a scope change across tenant boundaries, with high confidentiality and integrity impact. The affected CPE is cpe:2.3:a:invoiceshelf:invoiceshelf:*:*:*:*:*:*:*:*, covering versions prior to the 2.4.1 fix.
Know when Invoiceshelf 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:H/UI:N/S:C/C:H/I:H/A:N
Network REST API (AV:N), single trivial request (AC:L), requires Owner role (PR:H), no user interaction; cross-tenant compromise changes scope (S:C) with high confidentiality and integrity impact and no availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
InvoiceShelf is an open-source web & mobile app that helps track expenses, payments and create professional invoices and estimates. Prior to version 2.4.1, in InvoiceShelf's multi-company installations, any user who is an Owner of one company can read and overwrite any user account in any other company on the same installation. GET/PUT /api/v1/users/{user} resolves the target User by global primary key, and UserPolicy checks only that the requester owns their own header-company - it never verifies that the target user belongs to that company. This allows cross-tenant disclosure of user data and full account takeover (email/password overwrite + company re-assignment). Version 2.4.1 fixes the issue.
Technical POC Analysis
CWE-639 (Authorization Bypass Through User-Controlled Key) in InvoiceShelf's own application code (self-hosted, PHP/Laravel).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
InvoiceShelf multi-company installations running versions before 2.4.1 contain an authorization flaw that lets a company Owner seize full control of user accounts belonging to other companies hosted on the same instance, including resetting credentials, changing email addresses, and reassigning accounts between companies. Any organization running InvoiceShelf as a shared or hosted multi-tenant platform therefore faces a broken tenant-isolation guarantee that can expose every customer account on that server, not just the one targeted. Leadership should treat this as a customer-trust, data-integrity, and potential contractual/regulatory issue wherever multiple companies share a single InvoiceShelf deployment.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict Owner-role assignments to strictly vetted administrators; run each company on a separate single-company InvoiceShelf instance where feasible; block or tightly monitor cross-company use of the /api/v1/users/{user} endpoints at the reverse proxy/WAF; require MFA for all Owner accounts; enable and review audit logging for credential, email, and company-reassignment changes; and test tenant isolation with cross-company authorization checks.
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
More in Invoiceshelf
View allServer-Side Request Forgery in InvoiceShelf prior to version 2.2.0 allows authenticated high-privilege users to force th
Server-Side Request Forgery in InvoiceShelf 2.x allows authenticated administrators to exfiltrate internal network data
Server-Side Request Forgery in InvoiceShelf's PDF payment receipt generation allows authenticated high-privilege users t
EUVD-2026-85338
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB