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

Signature upload failure (no MSK found) when trying to cross-sign over federation #12973

Closed
ara4n opened this issue Apr 1, 2020 · 7 comments
Closed
Assignees

Comments

@ara4n
Copy link
Member

ara4n commented Apr 1, 2020

I tried to cross-sign @matthewtest:arasphere.net from @matthew:matrix.org from riot/web develop to riot/web develop. It failed with:

Screenshot 2020-04-01 at 01 14 11

despite matthewtest having cross-signing set up:

Screenshot 2020-04-01 at 01 15 32

@ara4n ara4n added the T-Defect label Apr 1, 2020
@jryans
Copy link
Collaborator

jryans commented Apr 1, 2020

@ara4n What version of Synapse is on arasphere.net now? Also, do you know what version was present there when @matthewtest:arasphere.net set up cross-signing?

@bwindels
Copy link
Contributor

bwindels commented Apr 7, 2020

Interesting... also since matrix-org/matrix-react-sdk@29af8ad we should fall back to legacy verification when the other user doesn't have cross-signing keys uploaded yet. Perhaps we don't disable signature upload for legacy verification?

@dbkr dbkr self-assigned this Apr 7, 2020
@dbkr
Copy link
Member

dbkr commented Apr 8, 2020

What's happening here is that the cross-signing keys from the older server get through to the newer one but then, at some later point (for me, when the user on the older server joins the room) the device on the newer server gets a cross-signing keys update with all 3 keys undefined. It seems like this is actually the server deciding the other user doesn't have cross-signing keys after all, but the device doesn't recognise this because it only replaces keys that are truthy in the object that it gets.

Synapse sends an object with 'undefined' as the value for keys that aren't included in the update (which it probably shouldn't) but this means we can't unset any key that's undefined.

@dbkr
Copy link
Member

dbkr commented Apr 8, 2020

Actually I think this is at least party due to an error affecting worker-ised synapses where it fails to write updates to cross-signing keys when updates come in via EDUs.

@dbkr
Copy link
Member

dbkr commented Apr 9, 2020

Filed on synapse: matrix-org/synapse#7252

@dbkr
Copy link
Member

dbkr commented Apr 15, 2020

Update: one cause of this bug is now fixed, but there is another. I think 7252 would have affected anyone with existing accounts & rooms who added a device or cross-signing key, but I think 7276 will affect federated user IDs that no user on a server previously shared a room with (eg. if you crate two brand new accounts on different servers & try to verify them).

@dbkr
Copy link
Member

dbkr commented Apr 22, 2020

Fixed in synapse now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants