AppArmor cursor_sandbox profile denies signals between sandboxed processes

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

On Ubuntu 26.04.1 LTS, AppArmor 5.0.2 logged repeated denials when a Bash process confined by cursor_sandbox attempted to send or receive a kill signal involving a process under the same profile:

 apparmor="DENIED" operation="signal" class="signal"
 profile="cursor_sandbox" comm="bash"
 requested_mask="send" denied_mask="send"
 signal=kill peer="cursor_sandbox"

Corresponding denials for requested_mask=“receive” were also logged. These denials may prevent sandboxed processes from terminating or cleaning up other processes as intended; I have not confirmed their effect on Cursor’s visible behavior.

The installed profile has since been locally modified to allow signals between processes with the same profile. The patch adds the following rule to the desktop, remote, and agent CLI sandbox profiles:

signal (send, receive) peer=@{profile_name}

Please review whether the shipped profile should permit the necessary same-profile signals, while preserving the intended sandbox isolation.

Environment: Ubuntu 26.04.1 LTS, AppArmor enabled. The currently installed Cursor package is 3.27.22-1793067078.

Steps to Reproduce

The exact Cursor command that triggered the historical denials is not known, so these steps are a starting point for reproduction:

  1. On Ubuntu with AppArmor enabled, use the original cursor_sandbox profile without the local same-profile signal rule.

  2. Run a shell command through Cursor’s sandbox that starts another process and attempts to terminate it with SIGKILL.

  3. Inspect the kernel journal:

    journalctl -k --no-pager | grep ‘profile=“cursor_sandbox”.*operation=“signal”|operation=“signal”.*profile=“cursor_sandbox”’

  4. Check for denied send and receive operations with signal=kill and peer=“cursor_sandbox”.

Expected Behavior

Processes inside the same Cursor sandbox should be able to send and receive signals needed for normal process management and cleanup, subject to the intended security boundaries, without unexpected AppArmor denials.

Operating System

Linux

Version Information

Version: 3.27.22
VS Code Extension API: 1.128.0
Commit: b1aa50cb6db84fd3e8c808259cb172ea73425c10
Date: 2026-10-27T00:33:02.045Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 42.11.16
Chromium: 148.0.7778.280
Node.js: 24.19.0
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Linux x64 7.0.0-42-generic

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey @Nguyen_Hoang_Huy

Thanks for flagging this! This is an issue the team is already aware of, and I’ve added your report internally.

I believe you can also temporarily work around this with the steps in this other post.