Tor Browser issueshttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues2023-01-30T08:35:42Zhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41539Crypto warning weaknesses2023-01-30T08:35:42ZhenryCrypto warning weaknessesThe "Bug 40209: Implement Basic Crypto Safety" patch (`73640da2c4e719493b45fb6140f7ad2666326d89`) is trying to prevent users using malicious crypto addresses from HTTP websites. It does this under the following condition
1. The website ...The "Bug 40209: Implement Basic Crypto Safety" patch (`73640da2c4e719493b45fb6140f7ad2666326d89`) is trying to prevent users using malicious crypto addresses from HTTP websites. It does this under the following condition
1. The website is HTTP and not `.onion` (so vulnerable to being spoofed).
2. The user [copies or cuts text](https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/73640da2c4e719493b45fb6140f7ad2666326d89#17431c47080b50e91d17ade0423f534d7467c15d_0_75)
3. And the copied text [looks like a crypto address](https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/73640da2c4e719493b45fb6140f7ad2666326d89#17431c47080b50e91d17ade0423f534d7467c15d_0_78)
In this case it shows the user a popup warning them about the potential inserted crypto address.
## Weaknesses
I can think of three weaknesses to this approach.
### White space
Currently, [we only trim the copied text](https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/73640da2c4e719493b45fb6140f7ad2666326d89#17431c47080b50e91d17ade0423f534d7467c15d_0_77) rather than remove all whitespace within as well. This means that you can just insert some whitespace in the address (they could make it look presentational, or use CSS to hide it) and the user won't get a warning.
It is not that usually for text inputs to consume (some) whitespace. And even if it didn't, a user that has already copied the text will probably just remove the whitespace themselves after pasting.
### Drag and drop
No warning is triggered if the user starts dragging the crypto address. Maybe this doesn't come up much, but the website could try and encourage it by just writing "Drag and drop the address below". Or setting `user-select: none` but making the address draggable.
### Copying the address manually
If you set `user-select: none` on the address then there is no way to copy the text. If the user already trusts the HTTP website, then they may just copy out the address by hand. Maybe they wouldn't bother with the length of some addresses though.
## Risk
I'm not sure how high the risk is since we have HTTPS-always now. But we have decided to still keep the crypto warning in place as a protective measure.henryhenryhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41506Remove TrustCor root certificates2023-01-30T08:35:42ZGusRemove TrustCor root certificates“Certificate Authorities have highly trusted roles in the internet ecosystem and it is unacceptable for a CA to be closely tied, through ownership and operation, to a company engaged in the distribution of malware,” Mozilla’s Kathleen Wi...“Certificate Authorities have highly trusted roles in the internet ecosystem and it is unacceptable for a CA to be closely tied, through ownership and operation, to a company engaged in the distribution of malware,” Mozilla’s Kathleen Wilson wrote to a mailing list for browser security experts. “Trustcor’s responses via their Vice President of CA operations further substantiates the factual basis for Mozilla’s concerns.”
https://www.washingtonpost.com/technology/2022/11/30/trustcor-internet-authority-mozilla/
concerns about Trustcor - https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/oxX69KFvsm4/m/etbBho-VBQAJma1ma1https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41468backport 1600437 : Disable CBC-mode ECDSA ciphers and stop advertising ECDSA+...2023-11-20T16:45:31ZThorinbackport 1600437 : Disable CBC-mode ECDSA ciphers and stop advertising ECDSA+SHA1following on from #40183
- FF109+ [1600437](https://bugzilla.mozilla.org/show_bug.cgi?id=1600437)
- [patch](https://hg.mozilla.org/mozilla-central/rev/d0ac295c1b62)
IDK if this makes any difference really, but it's more than just pref f...following on from #40183
- FF109+ [1600437](https://bugzilla.mozilla.org/show_bug.cgi?id=1600437)
- [patch](https://hg.mozilla.org/mozilla-central/rev/d0ac295c1b62)
IDK if this makes any difference really, but it's more than just pref flips. And we could drop the two prefs added in https://gitlab.torproject.org/tpo/applications/tor-browser/-/merge_requests/433
these two
```js
pref("security.ssl3.ecdhe_ecdsa_aes_256_sha", false, locked);
pref("security.ssl3.ecdhe_ecdsa_aes_128_sha", false, locked);
```Pier Angelo VendramePier Angelo Vendramehttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41452WebExtension "Content Script"2023-01-05T15:17:01ZP9LmZu22jmVbWebExtension "Content Script"Recently TorBrowser disallows running "content scripts" from the WebExtension API. I understand that content scripts can read user data and therefore are generally excluded in TorBrowser. But is there any way to disable this protection? ...Recently TorBrowser disallows running "content scripts" from the WebExtension API. I understand that content scripts can read user data and therefore are generally excluded in TorBrowser. But is there any way to disable this protection? In about:config I didn't find a solution unfortunately.
Version 11.5.7https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41360Backport Android-specific Firefox 106 to ESR 102.4-based Tor Browser2022-10-18T14:35:13ZrichardBackport Android-specific Firefox 106 to ESR 102.4-based Tor Browserhttps://www.mozilla.org/en-US/security/advisories/mfsa2022-44/
No android specific!https://www.mozilla.org/en-US/security/advisories/mfsa2022-44/
No android specific!richardrichardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41359Backport ESR 102.4 security fixes to 91.13-based Tor Browser2022-10-28T20:33:14ZrichardBackport ESR 102.4 security fixes to 91.13-based Tor BrowserAdvisories: https://www.mozilla.org/en-US/security/advisories/mfsa2022-44/#CVE-2022-42927
## CVE-2022-42927: Same-origin policy violation could have leaked cross-origin URLs
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1789128
## ...Advisories: https://www.mozilla.org/en-US/security/advisories/mfsa2022-44/#CVE-2022-42927
## CVE-2022-42927: Same-origin policy violation could have leaked cross-origin URLs
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1789128
## CVE-2022-42928: Memory Corruption in JS Engine
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1791520
## CVE-2022-42929: Denial of Service via window.print
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1789439
## CVE-2022-42932: Memory safety bugs fixed in Firefox 106 and Firefox ESR 102.4
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1789729
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1791363 // not required, fixes bug introduced in Firefox 98 which was not backported to ESR 91
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1792041
## CVE-2022-40674: libexpat before 2.4.9 has a use-after-free in the doContent function in xmlparse.c.
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1791598richardrichardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41351Move the crypto protection patch earlier in the patchset2023-02-15T08:26:56ZPier Angelo VendrameMove the crypto protection patch earlier in the patchsetThe patch for bug #40209 (e.g., ae81c697dfb66792ec5454a19e728f91abfee24d) could be moved to be with security level and new identity (so, possibly part of base browser, or be the first excluded patch).
The only problem is that it depends...The patch for bug #40209 (e.g., ae81c697dfb66792ec5454a19e728f91abfee24d) could be moved to be with security level and new identity (so, possibly part of base browser, or be the first excluded patch).
The only problem is that it depends on TorStrings.jsm.
We should either wait for #40924 to be completed, or do a workaround, like I've done for #40925 and #40926.Sponsor 131 - Phase 2 - Privacy BrowserPier Angelo VendramePier Angelo Vendramehttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41312Backport Firefox 105 Android security fixes to 102.3-based Tor Browser2022-09-23T23:01:49ZrichardBackport Firefox 105 Android security fixes to 102.3-based Tor Browserhttps://www.mozilla.org/en-US/security/advisories/mfsa2022-41/
The list of issues:
- CVE-2022-40961: Stack-buffer overflow when initializing Graphics
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1784588
@tom can you add me to...https://www.mozilla.org/en-US/security/advisories/mfsa2022-41/
The list of issues:
- CVE-2022-40961: Stack-buffer overflow when initializing Graphics
- [x] https://bugzilla.mozilla.org/show_bug.cgi?id=1784588
@tom can you add me to these issues please :)Sponsor 131 - Phase 3 - Major ESR 102 Migrationrichardrichardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41235Rate limit gyroscope sampling frequency on FF mobile2022-11-30T14:52:17ZMike PerryRate limit gyroscope sampling frequency on FF mobileBy the time we get around to an official mobile port, we should double-check that Mozilla has reduced the sampling rate of the gyroscope on Android:
http://crypto.stanford.edu/gyrophone/files/gyromic.pdfBy the time we get around to an official mobile port, we should double-check that Mozilla has reduced the sampling rate of the gyroscope on Android:
http://crypto.stanford.edu/gyrophone/files/gyromic.pdfhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41212Fix startup crash in debug build when installing noscript2022-09-01T22:36:57ZAlex CatarineuFix startup crash in debug build when installing noscript```
2020-10-30 16:29:12.038 10759-10759/org.torproject.torbrowser_debug D/StrictMode: StrictMode policy violation; ~duration=175 ms: android.os.strictmode.DiskWriteViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onWrit...```
2020-10-30 16:29:12.038 10759-10759/org.torproject.torbrowser_debug D/StrictMode: StrictMode policy violation; ~duration=175 ms: android.os.strictmode.DiskWriteViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1552)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7542)
at libcore.io.IoBridge.open(IoBridge.java:478)
at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
at org.mozilla.fenix.components.TorBrowserFeatures.installNoScript(TorBrowserFeatures.kt:33)
at org.mozilla.fenix.components.TorBrowserFeatures.install(TorBrowserFeatures.kt:96)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:121)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:78)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.mozilla.fenix.components.Core.getEngine(Unknown Source:2)
at org.mozilla.fenix.FenixApplication.setupInMainProcessOnly(FenixApplication.kt:150)
at org.mozilla.fenix.FenixApplication.onCreate(FenixApplication.kt:96)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2020-10-30 16:29:12.039 10759-10759/org.torproject.torbrowser_debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.torproject.torbrowser_debug, PID: 10759
java.lang.RuntimeException: StrictMode ThreadPolicy violation
at android.os.StrictMode$AndroidBlockGuardPolicy.onThreadPolicyViolation(StrictMode.java:1813)
at android.os.StrictMode$AndroidBlockGuardPolicy.lambda$handleViolationWithTimingAttempt$0$StrictMode$AndroidBlockGuardPolicy(StrictMode.java:1727)
at android.os.-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.strictmode.DiskWriteViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1552)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7542)
at libcore.io.IoBridge.open(IoBridge.java:478)
at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
at org.mozilla.fenix.components.TorBrowserFeatures.installNoScript(TorBrowserFeatures.kt:33)
at org.mozilla.fenix.components.TorBrowserFeatures.install(TorBrowserFeatures.kt:96)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:121)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:78)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.mozilla.fenix.components.Core.getEngine(Unknown Source:2)
at org.mozilla.fenix.FenixApplication.setupInMainProcessOnly(FenixApplication.kt:150)
at org.mozilla.fenix.FenixApplication.onCreate(FenixApplication.kt:96)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2020-10-30 16:29:12.040 10759-10759/org.torproject.torbrowser_debug E/ExceptionHandler: Uncaught exception handled:
java.lang.RuntimeException: StrictMode ThreadPolicy violation
at android.os.StrictMode$AndroidBlockGuardPolicy.onThreadPolicyViolation(StrictMode.java:1813)
at android.os.StrictMode$AndroidBlockGuardPolicy.lambda$handleViolationWithTimingAttempt$0$StrictMode$AndroidBlockGuardPolicy(StrictMode.java:1727)
at android.os.-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.strictmode.DiskWriteViolation
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1552)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7542)
at libcore.io.IoBridge.open(IoBridge.java:478)
at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
at org.mozilla.fenix.components.TorBrowserFeatures.installNoScript(TorBrowserFeatures.kt:33)
at org.mozilla.fenix.components.TorBrowserFeatures.install(TorBrowserFeatures.kt:96)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:121)
at org.mozilla.fenix.components.Core$engine$2.invoke(Core.kt:78)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.mozilla.fenix.components.Core.getEngine(Unknown Source:2)
at org.mozilla.fenix.FenixApplication.setupInMainProcessOnly(FenixApplication.kt:150)
at org.mozilla.fenix.FenixApplication.onCreate(FenixApplication.kt:96)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
```https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41149Review Mozilla 1762576: Firefox is not allowing Symantec DLP to inject DLL i...2022-10-21T20:23:58ZrichardReview Mozilla 1762576: Firefox is not allowing Symantec DLP to inject DLL into the browser for Data Loss Prevention software## https://bugzilla.mozilla.org/show_bug.cgi?id=1762576
Here's a thought, let's not let random processes inject dlls into tor-browser (to be clear I propose we revert / disable this funcitonality)## https://bugzilla.mozilla.org/show_bug.cgi?id=1762576
Here's a thought, let's not let random processes inject dlls into tor-browser (to be clear I propose we revert / disable this funcitonality)Sponsor 131 - Phase 3 - Major ESR 102 MigrationDan BallardDan Ballardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41131Review Mozilla 1738983: Enable Background Update by default on Release starti...2022-12-09T14:40:46ZrichardReview Mozilla 1738983: Enable Background Update by default on Release starting in FX96## https://bugzilla.mozilla.org/show_bug.cgi?id=1738983
Updater changes, odds are you're already aware and handled in the rebase already## https://bugzilla.mozilla.org/show_bug.cgi?id=1738983
Updater changes, odds are you're already aware and handled in the rebase alreadyhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41112Integrate cross-tab identity leak protection into Tor Browser with native UX2024-03-27T14:39:06ZdonutsIntegrate cross-tab identity leak protection into Tor Browser with native UXIn response to the potential for cache side channel attacks reported in https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41071, @ma1 deployed [Cross-tab Identity Leak Protection](https://noscript.net/usage/#crosstab-i...In response to the potential for cache side channel attacks reported in https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41071, @ma1 deployed [Cross-tab Identity Leak Protection](https://noscript.net/usage/#crosstab-identity-leak-protection) (or "TabGuard") in NoScript 11.4.8. However some users are finding the warning confusing, and/or are suffering from warning fatigue – e.g.:
```
<Jeremy_Rand_36C3[m]> So far at least 2 users in #tor have been very confused about the NoScript warnings that were recently added. One of them thought the warning meant his identity had already leaked, and panicked and shut off Tor Browser. Seems like we should ask the UX Team to evaluate how we can improve this, now that we have some breathing room since the vulnerability is mitigated.
<Jeremy_Rand_36C3[m]> One of the two users I noticed who was confused about the warning was one of my co-workers, who is very technically proficient, including about Tor, and even he couldn't understand what the warning was about, what triggered it, and what the correct course of action was
<Jeremy_Rand_36C3[m]> Then you have a less sophisticated user who thought the warning meant he was already pwned and panicked
<Jeremy_Rand_36C3[m]> I was hoping the UX Team might be able to evaluate how this warning can be better presented so that users don't get confused or make bad decisions when they see it
```
We're planning on integrating this feature into Tor Browser as part of the work to migrate the Security Level feature in https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40925. We should take this opportunity to improve the UX in general, in addition to converting the feature into standard Tor Browser UI patterns.ma1ma1https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41071Targeted Deanonymization via the Cache Side Channel2024-01-29T11:59:05ZGhost UserTargeted Deanonymization via the Cache Side Channelhttps://leakuidatorplusteam.github.io/
A paper describing the attacks will appear in the 31st USENIX Security Symposium (Boston, 10–12 August, 2022). A preprint of the paper is available [here](https://leakuidatorplusteam.github.io/prep...https://leakuidatorplusteam.github.io/
A paper describing the attacks will appear in the 31st USENIX Security Symposium (Boston, 10–12 August, 2022). A preprint of the paper is available [here](https://leakuidatorplusteam.github.io/preprint.pdf). The paper is the result of a collaboration between a group of researchers at the New Jersey Institute of Technology: Mojtaba Zaheri, Yossi Oren, and Reza Curtmola.
According to the authors, this attack has some nasty elements:
- It can precisely target any user with a specific public identifier, otherwise leave non-targeted users untouched.
- It can target users logged into highly popular resource-sharing services, for example Google, Dropbox, Twitter, Facebook.
- It works on users who use any browser including Tor Browser.
- It's scalable to attack large numbers of users.
- It gives no indication to the victim that they are being attacked.
- Effective countermeasures may involve a compromise of usability.
> On the Internet, the casual person surfing a website has a reasonable expectation that their identity remains private. We reveal new cache-based target deanonymization attacks which threaten user anonymity: An attacker who has complete or partial control over a website can learn whether a specific target (i.e., a unique individual) is browsing the website. The attacker knows this target only through a public identifier, such as an email address or a Twitter handle.
>
> The attacks leverage the sharing/blocking functionality provided by resource-sharing services such as YouTube, Google Drive, Dropbox, or Twitter. The target user is assumed to be logged into such a sharing service. The attacks exploit the CPU cache side channel on the target’s device, and can bypass isolation mechanisms and various defenses deployed by browser vendors or resource-sharing services.
>
> We evaluated the attacks on multiple hardware microarchitectures, multiple operating systems and multiple browser versions, including the highly-secure Tor Browser, and demonstrated practical targeted deanonymization attacks on major sites, including Google, Twitter, LinkedIn, TikTok, Facebook, Instagram and Reddit. The attack runs in less than 3 seconds in most cases, and can be scaled to target a large number of users.ma1ma12022-08-10https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41041[Feature proposal] Verification of onion service integrity2023-05-02T13:55:57ZErik Moeller[Feature proposal] Verification of onion service integrity## Problem statement
[SecureDrop](https://securedrop.org/) and similar onion services that seek to provide end-to-end-encrypted communications (between sender and designated recipient) have a bootstrapping problem: if the server is comp...## Problem statement
[SecureDrop](https://securedrop.org/) and similar onion services that seek to provide end-to-end-encrypted communications (between sender and designated recipient) have a bootstrapping problem: if the server is compromised, users cannot be sure that their communications are in fact end-to-end encrypted. Server-provided code or cryptographic key material may have been tampered with.
This is not addressed by existing web standards like [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) and [CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), both of which depend on the server being a trusted resource to begin with. In the context of WhatsApp E2EE, Cloudflare/Facebook have recently piloted the use of an [integrity verification browser extension](https://blog.cloudflare.com/cloudflare-verifies-code-whatsapp-web-serves-users/).
We similarly need a way to securely ship authenticated JavaScript and WASM code and ensure that script execution is limited to that resource(s) only.
The executed code would be the same for all SecureDrop instances of the same version. This requirement is both to prevent browser exploits from untrusted sites and from trusted but compromised websites, as well as to prevent MITM attacks from trusted but compromised websites.
## Proposal
We suggest that an integrity verification feature can be built on top of the existing [about:rulesets](https://gitlab.torproject.org/tpo/applications/tor-browser/-/merge_requests/262) functionality in Tor Browser, which maps full-length onion addresses against short names in the form `<service-name>.<namespace>.tor.onion`, e.g., `nytimes.securedrop.tor.onion`, and ships this information as a signed ruleset.
In this proposal, a ruleset provider could act as a verifier of a set of hashes (e.g., sha-256) which correspond to accepted response bodies for specific paths, e.g., `/index.html`, `/1.0.0/`. Subresources could then be verified using SRI.
Tor Browser would need to compute the hash based on the decompressed response body, before rendering the page, and display an error message if it does not correspond to one of the accepted hashes.
Interactions with Tor Browser's safety settings and the NoScript extension will need to be considered; ideally we'd like to ensure script execution is limited to resources that are verified directly or indirectly (e.g., via SRI hashes in a verified resource).
## Alternatives and implementation
We’d be happy to discuss alternative approaches that seem like a better fit from the Tor Project’s perspective, and are open to partnering directly with you on the implementing, testing and piloting any agreed upon approach.https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41020Tor browser does not enable CFG on Windows.2022-07-09T02:21:44Znum0005Tor browser does not enable CFG on Windows.Control Flow Guard ([MS docs](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard)) is a mitigation measure that blocks certain ways of redirecting the control flow. It is an example of a [control flow integrity](http...Control Flow Guard ([MS docs](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard)) is a mitigation measure that blocks certain ways of redirecting the control flow. It is an example of a [control flow integrity](https://en.wikipedia.org/wiki/Control-flow_integrity) mitigation. I did not check if the binary had other control flow integrity measures enabled as that would require reviewing the build process or disassembling the binary.
I verified that Tor Browser does not support support CFG while Firefox does [using the `dumpbin` tool](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard#how-do-i-tell-that-a-binary-is-under-control-flow-guard).
The advantage of enabling CFG even if other CFI measures are already in place is that it allows for interoperability with OS libraries - it allows OS libraries to verify any callbacks that point inside Tor Browser modules are valid.Sponsor 131 - Phase 3 - Major ESR 102 Migrationhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40944Prompt if Tor Browser is zoomed2023-11-04T01:34:46ZbugzillaPrompt if Tor Browser is zoomedDon't we need to display some kind of toolbar message or otherwise warn the user against zooming their Tor Browser window like in legacy/trac#7255?
Because zooming changes resolution to very rare values.Don't we need to display some kind of toolbar message or otherwise warn the user against zooming their Tor Browser window like in legacy/trac#7255?
Because zooming changes resolution to very rare values.https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40813Latest Tor Browser versions are not available via F-Droid2022-02-25T10:49:57ZGeorg KoppenLatest Tor Browser versions are not available via F-DroidI still have Tor Browser 10.5.10 and 11.0a8 on my phones using the Guardianproject workaround.
/cc @richard @sysrqb @aguestuser @eighthaveI still have Tor Browser 10.5.10 and 11.0a8 on my phones using the Guardianproject workaround.
/cc @richard @sysrqb @aguestuser @eighthavehttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40609Investigate Firefox's per-site "Disable Javascript" feature2022-12-08T15:15:29ZMatthew FinkelInvestigate Firefox's per-site "Disable Javascript" featurefe6cfda83acdbdd9f1576f710a1aa0d4116635b2fe6cfda83acdbdd9f1576f710a1aa0d4116635b2ma1ma1https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40218Safest security level hides video controls2022-12-08T15:15:26ZtorrrrrrrrrrrrrrrrSafest security level hides video controlsTor Browser version: 10.0.2 (desktop) and 10.0.3 (Android)
Steps to reproduce:
- Go to about:preferences
- search for `security`
- change security level to safest
- open https://gnu.org
- click to authorize the medias
![image](/upload...Tor Browser version: 10.0.2 (desktop) and 10.0.3 (Android)
Steps to reproduce:
- Go to about:preferences
- search for `security`
- change security level to safest
- open https://gnu.org
- click to authorize the medias
![image](/uploads/55273e2e8ef4cbb2f470eb87807cfde3/image.png)