You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Privacy] Stable ClientId/DeviceId correlates all telemetry submissions across sessions and channels #62
PostSharp attaches a stable, long-lived identifier (ClientId) to every telemetry submission. The value is UserSettings.DeviceId — a GUID generated once and persisted in the per-user registry (HKCU\...\Feedback\DeviceId) — and it is sent on all outbound channels:
Because the same identifier is reused indefinitely and across otherwise-independent channels, all of a user's submissions — usage metrics, IDE metrics, and exception reports — can be correlated into a single per-device profile spanning sessions and machine reboots. Each channel is individually intended to be effectively anonymous (counts, environment data, scrubbed stack traces), but the shared stable ClientId undermines that by acting as a persistent pseudonymous identifier. Exception reports already carry an InvariantHash for de-duplication, so the ClientId is not strictly required there.
The identifier is user-resettable from the CEIP options UI (ResetDeviceId), but it is otherwise permanent and on whenever any reporting channel is active.
Suggested remediations
Rotate the identifier periodically (e.g. per session or on a time window) rather than keeping it permanent.
Make the identifier per-channel (add different salt, per channel), to prevent cross-channel correlation.
Activity
gfraiteur commentedon Jun 27, 2026
Released in v2024.0.24.
-- Claude for Gael
gfraiteur commentedon Jun 27, 2026
Also released in v2026.0.13, which includes the upstream 2024.0.24 changes.
-- Claude for Gael