Paperclip 通过导入授权绕过实现未经身份验证的远程代码执行 (RCE)
PoC影响软件
Paperclip
CWE
CWE-285: Improper Authorization
关联产品
漏洞描述
## 漏洞概述 在默认配置下,运行在 `authenticated` 模式的 Paperclip 实例存在严重的逻辑漏洞链。攻击者可以利用开放注册、CLI 认证挑战自批准以及公司导入接口的授权绕过,最终实现远程代码执行 (RCE)。 ## 影响范围 - **软件**: Paperclip - **配置条件**: 运行在 `authenticated` 模式且使用默认配置(即允许注册且未禁用 CLI 挑战自批准)。 - **攻击后果**: 攻击者可以以 Paperclip 服务器操作系统用户的身份执行任意命令,从而获得文件系统访问权限、数据库访问权限,并可能在内网进行横向移动。 ## 利用条件 1. **开放注册**: `PAPERCLIP_AUTH_DISABLE_SIGN_UP` 默认为 `false`,且邮件验证默认关闭。 2. **CLI 认证自批准**: 创建 CLI 认证挑战的接口无需身份验证,且批准接口未检查创建者与批准者是否为同一人。 3. **导入授权绕过**: `/api/companies/import` 接口在处理 `new_company` 模式时,未调用 `assertInstanceAdmin` 进行权限校验。 4. **不安全的适配器配置**: 导入的 `.paperclip.yaml` 可以配置 `process` 类型的适配器,该适配器直接调用 `spawn()` 执行命令且无沙箱保护。 ## 修复建议 1. **默认禁用开放注册**: 将 `server/src/config.ts` 中的默认值改为 `true`,并明确文档化 `PAPERCLIP_AUTH_DISABLE_SIGN_UP` 环境变量。 2. **防止 CLI 认证自批准**: 在批准接口中增加逻辑,拒绝由创建者本人进行的批准操作。 3. **强化导入接口权限校验**: 在 `/api/companies/import` 接口中,针对 `new_company` 模式强制执行 `assertInstanceAdmin` 检查。 ## 参考链接 - https://github.com/advisories/GHSA-68qg-g8mg-6pr7
PoC / 利用代码
This content is AI generated and unverified. Use only for authorized security testing.
登录后可查看 PoC 内容
当前页面内容可能涉及 AI 翻译、补全或规范化处理,请结合原始来源核对关键信息。