Skip to content
Heist/ feed
Back to feed
High

Paperclip: Privilege Escalation via Agent-Controlled workspaceStrategy.provisionCommand Leading to OS Command Execution

Type: advisorySources: OSV

Paperclip is a Node.js server and React UI that orchestrates a team of AI agents to run a business. Versions of @paperclipai/server prior to 2026.416.0 contain a privilege escalation vulnerability that allows an attacker with an Agent API key to execute arbitrary OS commands on the Paperclip server host. An attacker with an agent credential can escalate privileges from the agent runtime to the Paperclip server host. The vulnerability occurs because agents are allowed to update their own adapterConfig via the /agents/:id API endpoint. The configuration field adapterConfig.workspaceStrategy.provisionCommand is later executed by the server runtime. As a result, an attacker controlling an agent credential can inject arbitrary shell commands which are executed by the Paperclip server during workspace provisioning. This breaks the intended trust boundary between agent runtime configuration and server host execution, allowing a compromised or malicious agent to escalate privileges and run commands on the host system. This vulnerability allows remote code execution on the server host. @paperclipai/server version 2026.416.0 fixes the issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-41208
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 21:16 UTC · Revision 1

Source evidence

Paperclip: Privilege Escalation via Agent-Controlled workspaceStrategy.provisionCommand Leading to OS Command Execution

core-osv · Original source

Published 23 Apr 2026, 00:47 UTC

Paperclip is a Node.js server and React UI that orchestrates a team of AI agents to run a business. Versions of @paperclipai/server prior to 2026.416.0 contain a privilege escalation vulnerability that allows an attacker with an Agent API key to execute arbitrary OS commands on the Paperclip server host. An attacker with an agent credential can escalate privileges from the agent runtime to the Paperclip server host. The vulnerability occurs because agents are allowed to update their own adapterConfig via the /agents/:id API endpoint. The configuration field adapterConfig.workspaceStrategy.provisionCommand is later executed by the server runtime. As a result, an attacker controlling an agent credential can inject arbitrary shell commands which are executed by the Paperclip server during workspace provisioning. This breaks the intended trust boundary between agent runtime configuration and server host execution, allowing a compromised or malicious agent to escalate privileges and run commands on the host system. This vulnerability allows remote code execution on the server host. @paperclipai/server version 2026.416.0 fixes the issue.

osv:CVE-2026-41208
Complete source record
{
  "id": "71ae9d0e2f48fc4077b40a6deb1edd168f2a3e90b9cfe93adc6aa4c1ebe04c25",
  "url": "https://osv.dev/vulnerability/CVE-2026-41208",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Paperclip: Privilege Escalation via Agent-Controlled workspaceStrategy.provisionCommand Leading to OS Command Execution",
    "summary": "Paperclip is a Node.js server and React UI that orchestrates a team of AI agents to run a business. Versions of @paperclipai/server prior to 2026.416.0 contain a privilege escalation vulnerability that allows an attacker with an Agent API key to execute arbitrary OS commands on the Paperclip server host. An attacker with an agent credential can escalate privileges from the agent runtime to the Paperclip server host. The vulnerability occurs because agents are allowed to update their own adapterConfig via the /agents/:id API endpoint. The configuration field adapterConfig.workspaceStrategy.provisionCommand is later executed by the server runtime. As a result, an attacker controlling an agent credential can inject arbitrary shell commands which are executed by the Paperclip server during workspace provisioning. This breaks the intended trust boundary between agent runtime configuration and server host execution, allowing a compromised or malicious agent to escalate privileges and run commands on the host system. This vulnerability allows remote code execution on the server host. @paperclipai/server version 2026.416.0 fixes the issue.",
    "evidence": "osv:CVE-2026-41208",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-41208",
      "aliases": [
        "CVE-2026-41208",
        "GHSA-265w-rf2w-cjh4"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/paperclipai/paperclip",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "b8725c52eff66cdea8cb223f1ca885475a254468"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2026.416.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:paperclip:paperclipai:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2026.416.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "canary/v2026.320.0-canary.6",
            "canary/v2026.416.0-canary.0",
            "canary/v2026.415.0-canary.7",
            "canary/v2026.415.0-canary.6",
            "canary/v2026.415.0-canary.5",
            "canary/v2026.415.0-canary.4",
            "canary/v2026.415.0-canary.3",
            "canary/v2026.415.0-canary.2",
            "canary/v2026.415.0-canary.1",
            "canary/v2026.415.0-canary.0",
            "canary/v2026.414.0-canary.2",
            "canary/v2026.414.0-canary.1",
            "canary/v2026.414.0-canary.0",
            "canary/v2026.413.0-canary.3",
            "canary/v2026.413.0-canary.2",
            "canary/v2026.413.0-canary.1",
            "canary/v2026.413.0-canary.0",
            "canary/v2026.411.0-canary.8",
            "canary/v2026.411.0-canary.7",
            "canary/v2026.411.0-canary.6",
            "canary/v2026.411.0-canary.5",
            "canary/v2026.411.0-canary.4",
            "canary/v2026.411.0-canary.3",
            "canary/v2026.411.0-canary.2",
            "canary/v2026.411.0-canary.1",
            "canary/v2026.411.0-canary.0",
            "canary/v2026.410.0-canary.1",
            "canary/v2026.410.0-canary.0",
            "canary/v2026.409.0-canary.4",
            "canary/v2026.409.0-canary.3",
            "canary/v2026.409.0-canary.2",
            "canary/v2026.409.0-canary.1",
            "canary/v2026.409.0-canary.0",
            "canary/v2026.408.0-canary.5",
            "canary/v2026.408.0-canary.4",
            "canary/v2026.408.0-canary.3",
            "canary/v2026.408.0-canary.2",
            "canary/v2026.408.0-canary.1",
            "canary/v2026.408.0-canary.0",
            "canary/v2026.407.0-canary.12",
            "canary/v2026.407.0-canary.11",
            "canary/v2026.407.0-canary.10",
            "canary/v2026.407.0-canary.9",
            "canary/v2026.407.0-canary.8",
            "canary/v2026.407.0-canary.7",
            "canary/v2026.407.0-canary.6",
            "canary/v2026.407.0-canary.5",
            "canary/v2026.407.0-canary.3",
            "canary/v2026.407.0-canary.2",
            "canary/v2026.407.0-canary.1",
            "canary/v2026.407.0-canary.0",
            "canary/v2026.406.0-canary.7",
            "canary/v2026.406.0-canary.6",
            "canary/v2026.406.0-canary.5",
            "canary/v2026.406.0-canary.4",
            "canary/v2026.404.0-canary.4",
            "canary/v2026.406.0-canary.3",
            "canary/v2026.406.0-canary.2",
            "canary/v2026.406.0-canary.1",
            "canary/v2026.406.0-canary.0",
            "canary/v2026.404.0-canary.3",
            "canary/v2026.404.0-canary.2",
            "canary/v2026.404.0-canary.1",
            "v2026.403.0",
            "canary/v2026.404.0-canary.0",
            "canary/v2026.403.0-canary.10",
            "canary/v2026.403.0-canary.9",
            "canary/v2026.403.0-canary.8",
            "canary/v2026.403.0-canary.7",
            "canary/v2026.403.0-canary.6",
            "canary/v2026.403.0-canary.5",
            "canary/v2026.403.0-canary.4",
            "canary/v2026.403.0-canary.3",
            "canary/v2026.403.0-canary.2",
            "canary/v2026.403.0-canary.1",
            "canary/v2026.403.0-canary.0",
            "canary/v2026.402.0-canary.7",
            "canary/v2026.402.0-canary.6",
            "canary/v2026.402.0-canary.5",
            "canary/v2026.326.0-canary.7",
            "canary/v2026.326.0-canary.6",
            "canary/v2026.326.0-canary.5",
            "canary/v2026.326.0-canary.4",
            "canary/v2026.326.0-canary.3",
            "canary/v2026.326.0-canary.2",
            "canary/v2026.326.0-canary.1",
            "canary/v2026.326.0-canary.0",
            "v2026.325.0",
            "canary/v2026.325.0-canary.1",
            "canary/v2026.325.0-canary.0",
            "canary/v2026.324.0-canary.12",
            "canary/v2026.324.0-canary.11",
            "canary/v2026.324.0-canary.10",
            "canary/v2026.324.0-canary.9",
            "canary/v2026.324.0-canary.8",
            "canary/v2026.324.0-canary.7",
            "canary/v2026.324.0-canary.6",
            "canary/v2026.324.0-canary.4",
            "canary/v2026.324.0-canary.5",
            "canary/v2026.324.0-canary.3",
            "canary/v2026.324.0-canary.2",
            "canary/v2026.324.0-canary.1",
            "canary/v2026.324.0-canary.0",
            "canary/v2026.323.0-canary.5",
            "canary/v2026.323.0-canary.4",
            "canary/v2026.323.0-canary.3",
            "canary/v2026.323.0-canary.2",
            "canary/v2026.323.0-canary.1",
            "canary/v2026.323.0-canary.0",
            "canary/v2026.321.0-canary.4",
            "canary/v2026.321.0-canary.3",
            "canary/v2026.321.0-canary.2",
            "canary/v2026.321.0-canary.1",
            "canary/v2026.321.0-canary.0",
            "canary/v2026.320.0-canary.7",
            "canary/v2026.320.0-canary.5",
            "canary/v2026.320.0-canary.4",
            "canary/v2026.320.0-canary.0",
            "canary/v2026.320.0-canary.3",
            "canary/v2026.320.0-canary.2",
            "canary/v2026.320.0-canary.1",
            "canary/v2026.319.0-canary.3",
            "canary/v2026.319.0-canary.2",
            "canary/v2026.319.0-canary.1",
            "canary/v2026.319.0-canary.0",
            "canary/v2026.318.1-canary.1",
            "canary/v2026.318.1-canary.0",
            "v2026.318.0",
            "canary/v2026.318.0-canary.2",
            "canary/v2026.318.0-canary.1",
            "canary/v2026.318.0-canary.0",
            "canary/v2026.3.18-canary.0",
            "canary/v2026.3.17-canary.3",
            "paperclipai@0.2.7",
            "@paperclipai/shared@0.2.7",
            "@paperclipai/server@0.2.7",
            "@paperclipai/db@0.2.7",
            "@paperclipai/adapter-utils@0.2.7",
            "@paperclipai/adapter-openclaw@0.2.7",
            "@paperclipai/adapter-codex-local@0.2.7",
            "@paperclipai/adapter-claude-local@0.2.7",
            "paperclipai@0.2.6",
            "@paperclipai/shared@0.2.6",
            "@paperclipai/server@0.2.6",
            "@paperclipai/db@0.2.6",
            "@paperclipai/adapter-utils@0.2.6",
            "@paperclipai/adapter-openclaw@0.2.6",
            "@paperclipai/adapter-codex-local@0.2.6",
            "@paperclipai/adapter-claude-local@0.2.6",
            "paperclipai@0.2.5",
            "@paperclipai/shared@0.2.5",
            "@paperclipai/server@0.2.5",
            "@paperclipai/db@0.2.5",
            "@paperclipai/adapter-utils@0.2.5",
            "@paperclipai/adapter-openclaw@0.2.5",
            "@paperclipai/adapter-codex-local@0.2.5",
            "@paperclipai/adapter-claude-local@0.2.5",
            "paperclipai@0.2.4",
            "@paperclipai/shared@0.2.4",
            "@paperclipai/server@0.2.4",
            "@paperclipai/db@0.2.4",
            "@paperclipai/adapter-utils@0.2.4",
            "@paperclipai/adapter-openclaw@0.2.4",
            "@paperclipai/adapter-codex-local@0.2.4",
            "@paperclipai/adapter-claude-local@0.2.4",
            "paperclipai@0.2.3",
            "@paperclipai/shared@0.2.3",
            "@paperclipai/server@0.2.3",
            "@paperclipai/db@0.2.3",
            "@paperclipai/adapter-utils@0.2.3",
            "@paperclipai/adapter-openclaw@0.2.3",
            "@paperclipai/adapter-codex-local@0.2.3",
            "@paperclipai/adapter-claude-local@0.2.3",
            "paperclipai@0.2.2",
            "@paperclipai/shared@0.2.2",
            "@paperclipai/server@0.2.2",
            "@paperclipai/db@0.2.2",
            "@paperclipai/adapter-utils@0.2.2",
            "@paperclipai/adapter-openclaw@0.2.2",
            "@paperclipai/adapter-codex-local@0.2.2",
            "@paperclipai/adapter-claude-local@0.2.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41208.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:39.831236895Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41208.json",
        "https://github.com/paperclipai/paperclip/security/advisories/GHSA-265w-rf2w-cjh4",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-41208"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-78"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41208.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-41208",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 507148,
  "published_at": "2026-04-23T00:47:45.824+00:00"
}