InvoiceShelf: Cross-tenant privilege escalation (CVE-2026-122158)
InvoiceShelf versions 2.4.3 and 3.0.0-alpha.3 are vulnerable to cross-tenant privilege escalation allowing an authenticated tenant owner to gain administrative control over other tenants on the same installation.
CVE search metadata
CVE search record: CVE-2026-122158. Severity: medium. CVSS: 4.7. EPSS: 0.27%. KEV: no. Product: InvoiceShelf (2.4.3, 3.0.0-alpha.3). Brief: InvoiceShelf: Cross-tenant privilege escalation (CVE-2026-122158). Brief link: https://feed.craftedsignal.io/briefs/2026-11-invoiceshelf-privilege-escalation/
Triage facts
Revision 1- Applicability
- InvoiceShelf (2.4.3, 3.0.0-alpha.3)
- Evidence
- Unknown
- Severity
- Low
- Action
- Immediate escalation
- Sources
- 6 public sources
- Freshness
- Revision 1Nov 6, 02:20 UTC
- Vulnerabilities
- 1 CVE
- Source quality
- A2Likely
InvoiceShelf contains a cross-tenant privilege escalation vulnerability (CVE-2026-122158) stemming from improper authorization checks during member creation and update operations. The application fails to validate that a company owner is authorized to manage memberships for companies other than their own, allowing an attacker to assign themselves or another account an arbitrary role (including 'owner') within a target tenant.
Attack Chain
- Attacker authenticates to InvoiceShelf as an owner of a legitimate tenant (Company A).
- Attacker initiates a
POSTorPATCHrequest to the member management API (/api/v1/members). - Attacker includes a
companiesarray in the request body containing the ID of a target victim tenant (Company B) and an elevated role assignment (e.g.,owner). - The application service layer processes the request.
- The
MemberService::create()orupdate()methods receive the malicious payload. - The application performs a Bouncer authorization scope switch to the victim tenant ID without validating that the attacker is an owner of that specific company.
- The application synchronizes the attacker's account role with the victim company, granting the requested privilege.
Impact
Successful exploitation allows an authenticated user to bypass tenant isolation, granting unauthorized access to financial records, customer data, and administrative settings of other tenants on the same installation.
Recommendation
- Upgrade InvoiceShelf to version 2.4.4 or 3.0.0-alpha.4 or later immediately.
- Review system logs for unexpected membership changes or administrative role assignments occurring via API requests, specifically looking for
POSTorPATCHrequests to/api/v1/memberscontaining cross-company IDs. - Audit existing tenant memberships for anomalous 'owner' roles assigned to accounts that should not have cross-tenant access.
Immediate actions
Upgrade InvoiceShelf to version 2.4.4 or 3.0.0-alpha.4.
Threat Hunt
Identify API requests to /api/v1/members where the requested Company ID does not match the active session context.
Data: Web server access logs or application audit logs containing request bodies
Mitigations
Upgrade to 2.4.4 or 3.0.0-alpha.4.
CVE-2026-122158