{"id":"CVE-2026-100371","title":"InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments","summary":"InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. In version 1.7.2, an authorization guard to Users::change_password(), was added to address a previous authorization flaw that allowed a s…","severity":"high","cvss":8.7,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","cwe":["CWE-863"],"vendor":"InvoicePlane","product":"InvoicePlane","affected":["InvoicePlane = 1.7.2"],"published":"2026-09-28","updated":"2026-09-28","sourceUpdated":"2026-09-28T21:17:11.653","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-100371","references":[{"url":"https://github.com/InvoicePlane/InvoicePlane/commit/8616fa45a61c1694b55bb9116e293269a0ced06a","label":"security-advisories@github.com"},{"url":"https://github.com/InvoicePlane/InvoicePlane/pull/1638","label":"security-advisories@github.com"},{"url":"https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-77hm-22wp-96wp","label":"security-advisories@github.com"}],"tags":["nvd","cve.org"],"cvssSource":"cna","ingestedAt":"2026-09-28T21:20:54.774Z","slug":"CVE-2026-100371","body":"## Overview\n\nInvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. In version 1.7.2, an authorization guard to Users::change_password(), was added to address a previous authorization flaw that allowed a secondary administrator (user_type=1, user_id != 1) to directly change the password of the primary administrator (user_id=1) through users/change_password/{id}. That remediation, however, protects only the direct password-change operation. It does not protect the identity attribute that password recovery actually trusts: user_email. Users::form() applies no equivalent object-level authorization check when editing the primary administrator's account, and user_email is not included in PROTECTED_FIELDS. A secondary administrator can therefore rewrite the primary administrator's email address, then drive the public password-recovery flow — which resolves the account by user_email — to receive the reset token and take over user_id=1. The result is an alternate attack path that achieves the same impact PR #1638 was intended to prevent: cross-administrator full account takeover of the primary administrator. This issue has been patched via commit 8616fa4.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":48,"depthScoreParts":{"impact":47.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}