Repository navigation
Conversation
Recent Cursor builds store cursorAuth/accessToken as cursor-safe-storage:v1, so posting the ciphertext as the session cookie made the notch ask users to sign in while they already were. Co-authored-by: Cursor <cursoragent@cursor.com>
5 of 6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Recent Cursor builds seal
cursorAuth/accessTokenascursor-safe-storage:v1:…(Chromium/Electron OSCrypt). Codenotch still posted that ciphertext as the session cookie, so/api/usage-summaryreturned 401/403 and the notch showed "Sign in to Cursor to see usage." even though the editor was signed in.This opens the sealed envelope before building the cookie:
%APPDATA%\Cursor\Local State→ DPAPI-unprotectos_crypt.encrypted_key→ AES-256-GCM (v10)Cursor Safe Storage→ PBKDF2-HMAC-SHA1 → AES-128-CBC (v10)Fixes / relates to #493.
Evidence
cursor-safe-storage:v1:blob used as cookie → needsAuth / "Sign in to Cursor to see usage."After: live decrypt on a signed-in Windows machine → JWT;
GET https://cursor.com/api/usage-summary→ HTTP 200 with membership +totalPercentUsed. Unit tests for plaintext pass-through, unknown version refusal, Windows v10 round-trip, Local State key parse, and live store decrypt: 5/5 passed.Merge Danger
Door: two-way
Read-only credential path only; no writes to Cursor's store. Can be reverted by dropping the decrypt step (behavior returns to posting the sealed blob / needsAuth).
Blast Radius: Cursor provider
Only the Cursor session borrow path changes. Other providers untouched. First Keychain/DPAPI access may prompt once on some machines.