Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
After using Cursor for some time, macOS repeatedly prompts that Cursor wants to install or enable its Helper Plugin. Eventually, macOS begins failing Gatekeeper security assessments for unrelated applications, causing:
- Legitimate DMGs to report: “filename.dmg” is damaged and can’t be opened. You should move it to the Trash.
- Applications failing to launch, becoming extremely slow to open, or unexpectedly terminating during launch.
- The issue affecting applications completely unrelated to Cursor.
The affected files are not actually corrupted or damaged:
hdiutilverify reports valid checksums on the DMGs.hdiutilattach successfully mounts the affected DMGs.- Restarting
syspolicydimmediately restores normal behavior for all previously-affected apps and DMGs.
Root Cause (as far as investigated)
syspolicyd (the macOS Gatekeeper daemon) was found holding an abnormally high number of open file descriptors — the vast majority pointing to the same executable:
/Applications/Cursor.app/Contents/Frameworks/Cursor Helper (Plugin).app/Contents/MacOS/Cursor Helper (Plugin)
macOS logs during the failure period repeatedly showed:
UNIX error exception: 24(EMFILE— “Too many open files”)Failed to generate SecStaticCode
This strongly suggests syspolicyd is leaking file descriptors while repeatedly assessing the Cursor Helper (Plugin), eventually hitting the per-process open-file limit. Once that happens, Gatekeeper can no longer generate SecStaticCode for any app it’s asked to assess — which is why unrelated, valid DMGs get misreported as “damaged.”
It is not yet confirmed whether the leak originates from:
- Cursor (e.g., the Helper Plugin re-triggering assessment prompts/checks repeatedly),
- macOS’s
syspolicyd(failing to release descriptors after assessment), or - An interaction between the two.
What is confirmed is that the descriptors accumulating on syspolicyd correlate directly with Cursor Helper (Plugin), and that restarting syspolicyd resolves the issue every time.
Steps to Reproduce
-
Install and use Cursor.
-
Repeatedly encounter the macOS prompt requesting permission to install/enable the Cursor Helper Plugin.
-
Continue using Cursor normally.
-
Eventually observe one or more of:
- Legitimate DMGs reported as “damaged.”
- Applications failing to launch.
- Applications taking unusually long to open, or terminating unexpectedly during launch.
-
Inspect
syspolicyd’s open file descriptors:sudo lsof -p $(pgrep syspolicyd) | wc -l -
Observe a very high count (in this case ~2,572), with descriptor types breaking down as:
sudo lsof -p $(pgrep syspolicyd) | awk '{print $5}' | sort | uniq -c→ ~2,565 REG (regular file) descriptors, overwhelmingly pointing to Cursor Helper (Plugin).
-
Restart the daemon:
sudo killall syspolicyd(macOS restarts it automatically.)
-
Re-check descriptor count — dropped to ~30 — and confirm previously-failing DMGs/apps now work normally.
Verification That Files Were Not Actually Corrupted
hdiutil verify ~/Downloads/"Firefox 153.0.dmg"
# → Checksum VALID
hdiutil attach ~/Downloads/"Firefox 153.0.dmg"
# → mounts successfully
xattr -l ~/Downloads/"Firefox 153.0.dmg"
# → nothing abnormal (quarantine attributes normal)
Expected Behavior
- Cursor Helper (Plugin) assessments should not cause
syspolicydto continuously accumulate file descriptors. syspolicydshould correctly release resources after each Gatekeeper assessment.- Installing or using Cursor should not degrade Gatekeeper assessments for unrelated applications.
Screenshots / Screen Recordings
Operating System
macOS
Version Information
Version: 3.12.30
VS Code Extension API: 1.128.0
Commit: 63a2996a10d9e476b6c28e951dd7691d9c0cf480
Date: 2026-07-21T22:50:03.568Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Darwin arm64 25.5.0
Does this stop you from using Cursor
No - Cursor works, but with this issue



