Terminal sandbox could not start

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

  • Cursor shows: “Terminal sandbox could not start. This may be caused by an AppArmor configuration on your Linux system (kernel 6.2+).”
  • AppArmor is disabled (/sys/module/apparmor/parameters/enabled = N; not in LSM list). The cursor_sandbox profile at /etc/apparmor.d/cursor-sandbox is present (from the .deb) but never loaded.
  • exthost.log: sandbox fails at “Step 1-2/7 (user namespace): Failed to unshare namespaces: EPERM” — i.e. unshare(CLONE_NEWUSER) returns EPERM.

Steps to Reproduce

Environment

  • OS: Arch Linux
  • Kernel: 6.18.9-arch1-local
  • Cursor: cursor-bin 2.5.26-1 (AUR; repackaged official .deb)
  • LSM: capability,landlock,lockdown,yama,bpf (AppArmor not active)
  • Kernel config: CONFIG_SECURITY_LANDLOCK=y, CONFIG_USER_NS=y
  • User namespaces: enabled (unprivileged_userns_clone=1)

Steps

  • Start Cursor IDE.
  • Popups says: “Terminal sandbox could not start. This may be caused by an AppArmor configuration on your Linux system (kernel 6.2+).”

What was tried

  • Verified kernel 6.2+, Landlock, unprivileged userns, and sandbox binary; all OK.
  • Ran checklist: no container; in the test shell NoNewPrivs and Seccomp are 0 and unshare -Ur works.
  • Ran cursorsandbox under strace -f -e unshare: main process gets unshare(CLONE_NEWUSER...) = -1 EPERM; one child got 0. So failure is per-process.
  • Checked Cursor process tree: main process has NoNewPrivs=0, Seccomp=0; zygote processes have NoNewPrivs=1, Seccomp=0. No seccomp filters found on checked PIDs.

Possible cause

The system and the shell used for checks allow unprivileged user namespaces; the same binary can succeed (child PID or Agent shell) or fail (main cursorsandbox) depending on process. That points to task-level restrictions on the process that runs the sandbox helper (e.g. inherited from Cursor/Electron) rather than kernel config or AppArmor. No further conclusion or fix is proposed here.

Operating System

Linux

Version Information

Version: 2.5.26
VSCode Version: 1.105.1
Commit: 7d96c2a03bb088ad367615e9da1a3fe20fbbc6a0
Date: 2026-02-26T04:57:56.825Z
Build Type: Stable
Release Track: Default
Electron: 39.5.2
Chromium: 142.0.7444.265
Node.js: 22.22.0
V8: 14.2.231.22-electron.0
OS: Linux x64 6.18.9-arch1-local

Does this stop you from using Cursor

No - Cursor works, but with this issue

4 Likes