Plane: Race condition in instance admin setup allows extra admin accounts
Summary
Plane, an open-source project management tool, contains a race condition (TOCTOU) in the endpoint that creates the first instance administrator. From version 0.13 until 1.4.0, two concurrent unauthenticated requests with different email addresses can both pass the check that no administrator exists yet. Both requests then create an account with instance-admin rights, so an attacker can share full administration of the instance with the legitimate operator.
Affected
- Plane from 0.13 up to, but not including, 1.4.0
Fixed in
- Plane 1.4.0 (fix in commit 7fbf14a6cb494bbf5866e2b293b28a6d8a7e52c3, PR #9332)
Workaround
- Unknown. No vendor workaround identified; upgrading to 1.4.0 is the fix.
Exploitation
- No known exploitation in the wild.
- CISA SSVC: exploitation none, automatable no, technical impact total.
- No public proof of concept found.
Our recommendation
- Upgrade Plane to version 1.4.0 or later.
- Until the upgrade is done, keep the instance setup endpoint unreachable from the internet.
- For any new or rebuilt instance, complete the admin setup immediately after deployment.
- Check the list of instance administrators for unknown accounts and remove any you do not recognise.
- Monitor logs for unexpected sign-up requests.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-p548-28jp-wr4p github.com
- Fix commit 7fbf14a6cb494bbf5866e2b293b28a6d8a7e52c3 github.com
- Pull Request #9332 github.com
- Plane v1.4.0 release github.com
- OSV: CVE-2026-104970 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 20:55.
Original description (NVD)
Plane is an open-source project management tool. From 0.13 until 1.4.0, InstanceAdminSignUpEndpoint in apps/api/plane/license/api/views/admin.py:89-117, 173-229 uses InstanceAdmin.objects.first() for the first-admin check and performs account creation without an atomic transaction, row lock, uniqueness guard, or advisory lock. Two concurrent unauthenticated requests with different email addresses can both observe that no instance administrator exists, create separate User and InstanceAdmin rows, and receive sessions with instance-admin authority. This allows an attacker to share unrestricted instance administration with the legitimate operator. This issue is fixed in 1.4.0.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
