Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
When using Cursor with a WSL2 workspace on Windows, ctrl-clicking a http://localhost: link such as http://localhost:3000 opens a different forwarded port like localhost:3001 or a random high port instead of opening the original URL.
This happens even though the service is already reachable from Windows at localhost:3000 via WSL’s built-in localhost loopback. It also happens even when auto port forwarding is disabled.
Steps to Reproduce
Open a WSL2 workspace in Cursor on Windows.
Start a dev server inside WSL on port 3000, for example next dev.
Verify in a Windows browser that typing http://localhost:3000 works.
In Cursor, ctrl-click the http://localhost:3000 link shown in terminal output or a file.
Expected Behavior
Cursor should open exactly http://localhost:3000 in the system browser without rewriting the port.
Since WSL2 already exposes Linux services on localhost, no port forwarding should be required.
Screenshots / Screen Recordings
Operating System
Windows 10/11
Version Information
Version: 2.4.30 (user setup)
VSCode Version: 1.105.1
Commit: 0f8217a84adf66daf250228a3ebf0da631d3c9b0
Date: 2026-02-06T23:20:57.191Z
Build Type: Stable
Release Track: Early Access
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.26200
Additional Information
On WSL2, Linux services bound to port 3000 are already reachable at Windows localhost:3000. The Windows kernel reserves this port for WSL loopback, so Windows applications cannot bind it.
Cursor still attempts to forward the port and rewrites the URL, which is unnecessary and leads to confusion and broken expectations. Manually opening localhost:3000 in the browser works correctly. Only Cursor’s link handling causes the issue.
This appears to be a forwarding policy problem specific to WSL, not a networking limitation.
Does this stop you from using Cursor
No - Cursor works, but with this issue
