Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross-signing didn't work when a new session was added #17622

Open
thomassross opened this issue Jun 10, 2021 · 2 comments
Open

Cross-signing didn't work when a new session was added #17622

thomassross opened this issue Jun 10, 2021 · 2 comments
Labels
A-E2EE-Cross-Signing T-Defect X-Needs-Community-Testing Z-Rageshake Has attached rageshake (not for log submission process)

Comments

@thomassross
Copy link

Description

A friend of mine (who was previously only using Element for iOS just installed Element on their Windows desktop (and verified his two sessions successfully). Previously we had verified each other, him from his iOS device and me from my Android device.

After my friend added his extra Windows session:

  • His Windows session does not trust any of my sessions (grey shield for both)
  • His iOS session does not trust me (red shield)
  • His sessions do trust each other (green shield)
  • My Android session and Linux session both trust his mobile session (green shield) and do not trust his Windows session (grey shield)
  • My sessions all trust each other (green shield)

We both have cross signing enabled. Also, all of my clients have "Never send encrypted messages to unverified sessions from this session" enabled, but he can read all my messages (and the room is indeed encrypted).

How come my sessions do not trust his? How come his iOS session no longer trusts my sessions?

Steps to reproduce

Unknown. I've submitted debug logs.

Version information

  • Me: Desktop, Linux, 1.7.29
  • Me: Android, 1.1.8
  • Him: Desktop, Windows, 1.7.30
  • Him: iOS, 1.4.1
@aaronraimist aaronraimist added A-E2EE-Cross-Signing Z-Rageshake Has attached rageshake (not for log submission process) labels Jun 11, 2021
@thomassross
Copy link
Author

Turns out his iOS session trusts all but one of my sessions. I have three sessions: Desktop 1 (which is the one described above), Android, and Desktop 2 (which hasn't been used in months - the computer has been off). The one session his iOS session does not trust is Desktop 2. I just turned it on and upgraded it to Element 1.7.30, and it says that it does not trust either of his sessions, which is very odd. I also upgraded Desktop 1 to 1.7.30.

If I send a message to him from Desktop 2, he can read it on iOS but not on Windows.

I suspect that I could fix this easily by verifying his new session manually (i.e. not relying on cross-signing), but:

  1. It's probably best that this bug is fixed properly (in code)
  2. It's concerning that his untrusted session can read messages sent from my sessions which have "Never send encrypted messages to unverified sessions from this session" enabled. Is this because his trusted (from my perspective) session is sending the encryption keys to the other session? I think this must be the case.

@thomassross
Copy link
Author

thomassross commented Jun 11, 2021

If I send a message to him from Desktop 2, he can read it on iOS but not on Windows.

Update: Now he can read it on Windows too. Note that this session has "Never send encrypted messages to unverified sessions from this session" on as well.

Is this because his trusted (from my perspective) session is sending the encryption keys to the other session?

Are my other sessions sending him the encryption keys? Really not sure how this is working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-E2EE-Cross-Signing T-Defect X-Needs-Community-Testing Z-Rageshake Has attached rageshake (not for log submission process)
Projects
None yet
Development

No branches or pull requests

3 participants