Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Browser Tor Browser
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 917
    • Issues 917
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Applications
  • Tor BrowserTor Browser
  • Issues
  • #42084

Race condition with language preferences may make spoof_english ineffective

As originally reported on HackerOne:

Summary: Enabling 'Request English versions of web pages for enhanced privacy' in 'Choose your preferred language for displaying pages' continues to use the grayed out settings for JS and HTTP language preferences. This affects navigator.language, navigator.languages, but also Accept-Language.

Steps To Reproduce:

  • Change the list of languages in the browser preference 'Choose your preferred language for displaying pages', for example add a new language or reorder the list of languages.

  • From the same menu, enable 'Request English versions of web pages for enhanced privacy'. This will gray out the reconfiguration in step 1. Verify if the setting in step 2 took place by checking navigator.language, navigator.languages and Accept-Language.

The original analysis is a bit misleading: this bug does not impact anyone that has previously changed their language settings, as stated, because flipping the privacy.spoof_english preference does actually reset intl.accept_languages to "en-US, en" (the remedy suggested by the reporter).

However this correct behavior gets broken when user changes their languages preferences and immediately checks the Request English versions of web pages for enhanced privacy box, because the preferences aren't necessarily saved in the correct order, and this way you can end with both English spoofing allegedly enabled and a custom language being used nonetheless.

So it's more an edge case than what the original report suggests, but absolutely worth fixing by ensuring the preferences are saved in the correct order (and possibly adding some sanity check at startup).

Not confidential because a fingerprinting adversary gains no additional advantage from knowing about this bug (they're surely already collecting language data), while users are in a better position knowing about this problem until it's fixed.

Assignee
Assign to
Time tracking