HOW TO SECURE WINDSURF - SECURITY GUIDE | VIBEEVAL
Windsurf Security Context
Windsurf is Codeium’s IDE — a VS Code / Chromium fork with a built-in agent (Cascade) that reads, edits, and runs commands across your workspace. Two distinct risks: (1) the IDE itself is a Chromium app that needs the same patch cadence as a browser, and (2) the agent can take actions on your machine, so the configuration of what it’s allowed to do matters more than the model’s “smartness.”
Security Checklist
1. Enable zero-data-retention mode
In Windsurf → Settings → Codeium → Privacy: turn on “Zero Data Retention” (Enterprise plan) so prompts and completions are not retained for training. On Free / Pro, opt out of telemetry under Settings → Telemetry → Disable. Without one of these, your code may be retained as training data.
2. Keep Windsurf updated
Windsurf inherits Chromium’s CVE timeline. Enable auto-update (Settings → Updates → Auto-install updates) — every Chromium CVE is also a Windsurf CVE until you patch. Verify the running version weekly: Help → About.
3. Configure Cascade approval mode
Cascade can edit files and run commands. In Settings → Cascade → Auto-execute commands: set to “Ask before executing” for unfamiliar projects. Auto-execute is a footgun — rm -rf is one prompt away when it’s enabled. For trusted projects with version control, “auto-execute safe commands” (read-only) is a reasonable middle ground.
4. Set up .codeiumignore
Add a .codeiumignore (same syntax as .gitignore) at the repo root. Exclude: .env, .env.*, *.pem, secrets/, anything with credentials. The agent skips these files entirely; they don’t enter context.
5. Audit what’s already in context
Open Cascade chat → click any past response → check the “context” expander. Confirm no sensitive files are being included. If they are, add to .codeiumignore and start a new conversation (existing conversations retain context).
6. Review Codeium Enterprise privacy settings
For Enterprise: in the admin console, confirm “Train on customer code” is off, “Code snippet matching” filtering is on, and the data residency region matches your compliance requirements (US / EU). Free / Pro plans don’t expose these — assume default behaviour and audit accordingly.
7. Restrict workspace folders
Open only one project at a time when working with sensitive code. Multi-root workspaces let Cascade read across all roots. File → New Window for an unrelated project keeps contexts separate.
8. Limit installed extensions
Windsurf supports VS Code extensions; each one runs with full IDE privileges. Audit Extensions → Installed: remove any you don’t actively use. For ones you keep, prefer publishers verified by Microsoft and check the install count — a 50-install extension that asks for “all files” is a malware vector.
9. Validate AI-suggested dependencies
When Cascade suggests npm install <package> — verify the package exists at npm.js with a recent publish date. The Package Hallucination Scanner catches the AI-specific subset of phantom packages.
10. Add pre-commit hooks for secret detection
Use pre-commit with detect-secrets or gitleaks to catch credentials before commit. The agent’s edits are committed by you — the hook is your last line of defense against accidentally promoting a key.
11. Audit extension permissions
In Extensions → [extension] → Details → Permissions: review what each extension declares. “Read all files,” “Run commands,” “Connect to network” — each is a real privilege. Uninstall extensions that ask for more than they need.
12. Sign commits
git config commit.gpgsign true and configure a GPG / SSH signing key. Signed commits prove provenance — useful when reviewing whether a change came from a team member or from an attacker who got brief access to a workstation.
13. Review telemetry settings
Settings → Telemetry: set to minimum. Crash reports may include file paths and snippets — useful to Codeium, leakage to you.
14. Audit remote development connections
If using SSH Remote or Dev Containers: confirm the remote host’s SSH config restricts agent forwarding (ForwardAgent no in client config unless required). Cascade running on a remote host can read whatever the remote user can read.
15. Review generated code with the same standards as a human PR
Cascade’s output is fast and looks plausible — verify the same things you’d verify in a human PR: parameterized queries, validated inputs, auth gates on new routes, no secrets in code.
16. Run an automated security scan
After Cascade ships changes to production, the Vibe Code Scanner covers the deploy-side patterns; the full VibeEval scan adds BOLA and webhook trust.
Related Resources
Free Self-Audit Suite
Five free scanners.
Vibe Coding Security Risk Guide
Full risk catalogue.
Automate Your Security Checks
VibeEval scans applications shipped via Windsurf — every category above plus the long tail.
SCAN YOUR APP
14-day trial. No card. Results in under 60 seconds.