Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. @paperclipai/server
  4. ›
  5. GHSA-47wq-cj9q-wpmp

GHSA-47wq-cj9q-wpmp: Paperclip: Cross-tenant agent API token minting via missing assertCompanyAccess on /api/agents/:id/keys

April 16, 2026

POST /api/agents/:id/keys, GET /api/agents/:id/keys, and DELETE /api/agents/:id/keys/:keyId (server/src/routes/agents.ts lines 2050-2087) only call assertBoard to authorize the caller. They never call assertCompanyAccess and never verify that the caller is a member of the company that owns the target agent.

Any authenticated board user (including a freshly signed-up account with zero company memberships and no instance_admin role) can mint a plaintext pcp_* agent API token for any agent in any company on the instance. The minted token is bound to the victim agent’s companyId server-side, so every downstream assertCompanyAccess check on that token authorizes operations inside the victim tenant.

This is a pure authorization bypass on the core tenancy boundary. It is distinct from GHSA-68qg-g8mg-6pr7 (the unauth import → RCE chain disclosed in 2026.410.0): that advisory fixed one handler, this report is a different handler with the same class of mistake that the 2026.410.0 patch did not cover.

References

  • github.com/advisories/GHSA-47wq-cj9q-wpmp
  • github.com/paperclipai/paperclip
  • github.com/paperclipai/paperclip/security/advisories/GHSA-47wq-cj9q-wpmp

Code Behaviors & Features

Detect and mitigate GHSA-47wq-cj9q-wpmp with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 2026.416.0

Fixed versions

  • 2026.416.0

Solution

Upgrade to version 2026.416.0 or above.

Impact 9.9 CRITICAL

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Learn more about CVSS

Weakness

  • CWE-1220: Insufficient Granularity of Access Control
  • CWE-285: Improper Authorization
  • CWE-639: Authorization Bypass Through User-Controlled Key
  • CWE-862: Missing Authorization

Source file

npm/@paperclipai/server/GHSA-47wq-cj9q-wpmp.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 09 May 2026 12:17:55 +0000.