Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Bug Description
Cursor Server crashes with SIGSEGV (SEGV_PKUERR) immediately after startup when connecting to a remote Linux host via SSH. The crash occurs when the V8 JIT compiler loads the @vscode/spdlog native module on a CPU that does not support Intel Memory Protection Keys (PKU/MPK).
Environment
- Cursor CLI Version: 2026.01.17-d239e66
- Local OS: Windows 10 (10.0.19045)
- Remote OS: Ubuntu 22.04.5 LTS (kernel 5.15.0-143-generic)
- Remote glibc: 2.35 (fully compatible)
- Remote arch: x86_64
- Cursor Server commit: eb1c4e0702d201d1226d2a7afb25c501c2e56080
- Bundled Node.js: v20.18.2
- CPU PKU support: No (
grep pku /proc/cpuinforeturns empty) - Remote SSH extension: anysphere.remote-ssh-1.0.46
Crash Log (strace)
The crash happens right after loading @vscode/spdlog:
Steps to Reproduce
- Set up SSH config for a remote Linux host (Ubuntu 22.04, x86_64, CPU without PKU support)
- In Cursor, connect to this remote host via Remote SSH
- Wait for Cursor Server to download and install (~89MB)
- Cursor Server starts, binds to a port, then immediately crashes with “Segmentation fault (core dumped)”
- Cursor shows error: “Couldn’t install Cursor Server, install script returned non-zero exit status: Code server did not start successfully”
Workaround: Adding export NODE_OPTIONS="--no-node-snapshot --jitless" to the cursor-server startup script (~/.cursor-server/bin/linux-x64//bin/cursor-server) before the last line resolves the crash.
Note: Setting NODE_OPTIONS in ~/.bashrc does NOT work because cursor-server is launched as a background process and does not inherit the shell environment.
Expected Behavior
Cursor Server should start normally and establish Remote SSH connection without crashing. The V8 engine should detect CPU capabilities and gracefully fall back when PKU (Memory Protection Keys) is not supported by the CPU.
Screenshots / Screen Recordings
Operating System
Windows 10/11
Version Information
CLI Version 2026.01.17-d239e66
For AI issues: which model did you use?
N/A - This is not an AI issue
For AI issues: add Request ID with privacy disabled
N/A
Additional Information
Root cause confirmed via strace: V8 JIT compiler triggers SEGV_PKUERR when loading @vscode/spdlog native module on a CPU without Intel PKU support.
Key evidence:
- strace shows: SIGSEGV {si_code=SEGV_PKUERR} right after loading spdlog
- grep pku /proc/cpuinfo returns empty (CPU has no PKU)
- –jitless flag completely fixes the crash (confirms V8 JIT is the cause)
- –no-node-snapshot alone does NOT fix it
- All libraries are present (ldd shows no missing deps)
- No LD_PRELOAD, no GPU drivers, glibc 2.35 is compatible
- Multiple users on the same server are affected (found another user’s core dump from Dec 2025)
Suggested fix: Detect PKU support at runtime and disable PKU code paths when unsupported, or provide a way to pass NODE_OPTIONS to the remote cursor-server process via settings.
Does this stop you from using Cursor
Yes - Cursor is unusable
