Skip to main content

InvoiceShelf CVE-2026-55610

| EUVDEUVD-2026-85338 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-09-23 GitHub_M
8.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as Owner of one company
  2. Delivery
    Enumerate global user IDs via GET /api/v1/users/{user}
  3. Exploit
    Read cross-tenant user records
  4. Execution
    PUT overwrite email/password + reassign company
  5. Impact
    Full 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

InvoiceShelf < 2.4.1

Affected Packages

euvd invoiceshelf fix: 2.4.1

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

Vendor (GitHub_M) PRIMARY 8.7 HIGH
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 8.7 HIGH

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.

3.1 AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Sep 23, 2026 - 16:02 EUVD
CVE Published
Sep 23, 2026 - 14:38 cve.org
HIGH 8.7

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche self-hosted open-source invoicing app, limited production footprint
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy