Plainpad 权限提升漏洞CVE-2026-42562
Plainpad 是一款开源、自托管、轻量简洁的笔记应用,该产品主打 “简单、稳定、数据可控”,支持 Markdown、代码高亮、暗黑模式。
一、基本情况
Plainpad 是一款自托管的开源笔记应用,支持通过 RESTful API 进行笔记管理,其基于 Laravel + React 构建,笔记数据库加密存储。

Plainpad 可以完全自托管,数据留在你自己服务器,不经过第三方;支持渐进式网页应用,且支持 Docker、PHP+MySQL 一键部署。
栋科技漏洞库关注到 Plainpad 在 1.1.1 及之前版本中存在一个权限提升漏洞,现已经被追踪为CVE-2026-42562,CVSS 3.1评分8.8。
二、漏洞分析
CVE-2026-42562是存在于 Plainpad 受影响版本中漏洞,影响 server/app/Http/Controllers/V1/UsersController.php::update组件。
漏洞源于是对特权属性赋值($user->admin = $request->input('admin');)缺少字段级权限校验,可实现从普通用户直接提权至管理员。
由于 UsersController::update 函数在处理 PUT /api.php/v1/users/{id} 请求时,通过 $user->admin && $user->id !== $id 进行授权检查,
但比较的是目标用户而非当前认证用户,因此这导致了权限绕过存在的情况存在。
同时,直接将请求中的 admin 属性值持久化到数据库,允许低权限认证用户通过向 PUT /api.php/v1/users/{id} 提交 admin=true 参数。
通过在请求中提交 admin=true 参数,攻击者可以自行将自己的权限提升权限为管理员。
该接口会直接持久化用户输入中的管理员权限属性,提权后的账户可立即访问仅管理员可用的路由。
攻击者能获取完整管理权限,导致数据机密性与完整性遭到严重破坏,并根据管理员功能范围获得对系统的整体控制权。
通过添加 Auth::user() 获取当前认证用户并检查其管理员权限,同时仅在认证用户为管理员时才允许修改 admin 属性,防止权限提升。
三、影响范围
plainpad ≤ 1.1.1
四、修复建议
plainpad > 1.1.1
五、参考链接
管理员已设置登录后刷新可查看