Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privilege credentials
-
DeliveryAuthenticate to Plainpad API
-
ExploitSend PUT /api.php/v1/users/{self} with admin=true
-
ExecutionServer grants admin rights
-
PersistAccess admin-only routes
-
ImpactExfiltrate all user data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must possess valid credentials for any authenticated Plainpad user account (CVSS PR:L - low-privileged user). The vulnerable endpoint /api.php/v1/users/{id} must be accessible over the network (CVSS AV:N). No special Plainpad features, non-default configurations, or administrative permissions are required - exploitation succeeds against default installations. No user interaction needed (CVSS UI:N). Limiting factors: attacker must first obtain or create a legitimate user account (via registration if enabled, credential theft, or social engineering), and the Plainpad instance must be running a version prior to 1.1.1. The vulnerability does not affect installations where user registration is fully disabled and no attacker-controlled accounts exist, though this is rarely the case for note-taking applications designed for multi-user access. |
| Impact | Real-world risk is HIGH for self-hosted Plainpad deployments despite moderate EPSS probability. The CVSS 8.3 score accurately reflects impact (High confidentiality and integrity, Low availability) with network attack vector, low complexity, and low privilege requirement. No user interaction needed makes this trivially exploitable by any authenticated user - including legitimate low-privilege accounts or compromised credentials. The attack is highly automatable and grants complete administrative control, enabling attackers to read all users' notes, modify application settings, create backdoor accounts, or destroy data. SSVC decision factors favor prioritization: exploitation is straightforward (public PoC not required given simplicity), technical impact is total (admin access), and mission impact depends on sensitivity of notes stored. Mitigating factors: requires self-hosted deployment (not SaaS), attacker must first obtain valid credentials (PR:L), and scope is unchanged (no cross-tenant impact). No CISA KEV listing indicates no widespread exploitation detected, but public GitHub advisory and issue disclosure significantly lower exploitation barriers. Organizations using Plainpad should treat this as urgent given the one-request privilege escalation path. |
| Exploit ScenarioDerived | An attacker with a valid low-privilege Plainpad account (e.g., a regular user account created during normal registration) authenticates to the application and obtains a session token. They craft a PUT request to /api.php/v1/users/{their_user_id} with JSON payload {"admin": true} and submit it to the API endpoint. The server processes this request, directly assigns admin=true to the attacker's user record, and responds successfully. The attacker's next request to admin-only routes (such as user management, system settings, or bulk data export) succeeds with full administrative privileges, granting access to all users' private notes and system configuration. Given low attack complexity (CVSS AC:L), no specialized tools or deep technical knowledge required beyond basic HTTP client usage. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 09, 2026
Privilege escalation in Plainpad versions prior to 1.1.1 allows any authenticated user to immediately grant themselves administrator privileges via a single HTTP PUT request to the user update endpoint. The vulnerability stems from the API directly accepting the admin parameter from user input without verifying the requesting user's existing privilege level. Affected instances enable low-privilege accounts to bypass authorization controls and access admin-only functionality with no special conditions beyond basic authentication. No public exploit code or active exploitation confirmed at time of analysis, though exploitation requires minimal technical skill given the straightforward attack vector (CVSS AV:N/AC:L/PR:L).
RemediationAI
Upgrade immediately to Plainpad version 1.1.1 or later, available at https://github.com/alextselegidis/plainpad/releases/tag/1.1.1. The patch (commit 9216a876d27b22c3d9259551636d803f7cb075fc at https://github.com/alextselegidis/plainpad/commit/9216a876d27b22c3d9259551636d803f7cb075fc) adds authorization logic preventing non-admin users from modifying the admin attribute during user profile updates. If immediate patching is not feasible, implement web application firewall (WAF) rules or reverse proxy filters to block PUT requests to /api.php/v1/users/* that contain the admin parameter in the request body from non-admin source IPs, though this workaround is fragile and bypassable if attackers control admin sessions. Alternatively, restrict API access to trusted IP ranges and audit user admin status immediately to detect any unauthorized escalations, then force password resets for all accounts - note this creates operational disruption and does not prevent re-exploitation. No workaround fully mitigates the issue; upgrade to 1.1.1 is the only complete fix.
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
Plainpad is a self-hosted PHP-based note-taking application (CPE: cpe:2.3:a:alextselegidis:plainpad). The vulnerability resides in the UsersController.php update method (PUT /api.php/v1/users/{id}) which performs mass assignment of user-supplied attributes directly to the User model without proper authorization checks. The code incorrectly validated whether the authenticated user ($user) had admin rights before allowing updates, but failed to prevent any authenticated user from setting their own admin flag to true. This is a classic instance of CWE-269 (Improper Privilege Management) - the application trusts client-supplied privilege level data and applies it server-side without verifying the requester's authority to make such changes. The fix introduces a privilege check ensuring only existing administrators can modify the admin attribute, while non-admin users can still update their own non-privileged profile fields.
Know when Plainpad 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:L/UI:N/S:U/C:H/I:H/A:L
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Plainpad is a self hosted note taking app. Prior to version 1.1.1, Plainpad allows a low-privilege authenticated user to self-escalate to administrator by submitting admin=true in PUT /api.php/v1/users/{id}. The endpoint directly persists the admin attribute from user input, and the escalated account can immediately access admin-only routes. This issue has been patched in version 1.1.1.
Executive ViewAI
Plainpad versions before 1.1.1 contain a critical privilege escalation vulnerability allowing any authenticated user to elevate themselves to administrator status through a simple API request, potentially exposing sensitive data and system configuration to unauthorized modification. This flaw directly threatens administrative control and compliance posture by enabling low-privilege employees or compromised accounts to assume full system access without detection.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict network access to the affected user update API endpoint (PUT requests to user management) to trusted administrative systems only; (2) Deploy Web Application Firewall rules to block PUT requests containing 'admin' parameter modifications from non-administrative source IPs; (3) Disable user self-service profile/permission modification features if operationally feasible; (4) Implement enhanced logging and alerting on administrative privilege changes to detect exploitation attempts; (5) Enforce multi-factor authentication for all user accounts to reduce value of credential compromise; (6) Conduct immediate audit of administrative accounts for unauthorized modifications.
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
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
EUVD-2026-28929
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB