Commit Graph
224 Commits
Author SHA1 Message Date
timedout 08d3d8445f chore: Merge branch 'nex/feat/registration-messages' 2026-08-12 14:25:15 +01:00
Ginger ad182417da fix: SEC26
Reviewed-By: timedout <git@nexy7574.co.uk>
Reviewed-By: Ginger <ginger@gingershaped.computer>
2026-08-11 17:56:29 -04:00
Ginger 7377074f6d fix: SEC28 2026-08-11 17:56:29 -04:00
Erwan Leboucher 7472faa096 fix(sync): Remove sync wake before membership commit point 2026-08-11 14:10:23 +00:00
Erwan Leboucher 2998dc9b40 fix(sync): Deliver left rooms missing from timeline index 2026-08-11 14:10:23 +00:00
Erwan Leboucher 18139ea891 feat(sync): Add MSC4508 typing extension 2026-08-08 14:07:08 +00:00
stratself 9c8c38496d chore: Add changelog because it seems important 2026-08-08 05:44:06 +00:00
Michel-Marie MAUDET f0493a7ba8 fix(oauth): Use unauthorized_client for unregistered grant types
The token endpoint already refused grant types the client had not
registered, but reported it as `invalid_grant`. RFC 6749 section 5.2
reserves `invalid_grant` for an authorization grant which is "invalid,
expired, revoked, does not match the redirection URI used in the
authorization request, or was issued to another client", and defines
`unauthorized_client` for a client which "is not authorized to use this
authorization grant type".

Report the condition with the error code the specification assigns to it,
matching the device authorization endpoint.
2026-08-07 08:52:20 +00:00
Michel-Marie MAUDET 8c1bbf3d1a fix(oauth): Reject device code requests from unauthorised clients
The device authorization endpoint issued a device code to any registered
client, without checking that the client had registered the
`urn:ietf:params:oauth:grant-type:device_code` grant type. Such a client
could therefore start a device authorization flow and have the server
show an approval prompt to a user, even though the subsequent token
request was always going to be refused.

RFC 8628 section 3.2 states that, in the event of an error such as an
invalidly configured client, the device authorization endpoint responds
in the same way as the token endpoint specified in RFC 6749 section 5.2,
which defines `unauthorized_client` as "the authenticated client is not
authorized to use this authorization grant type".

Apply the same grant type check the token endpoint already performs, and
add the `unauthorized_client` error code it requires.
2026-08-07 08:52:20 +00:00
renegadespork 30be07fe8f chore: Fix changelog news fragment formatting 2026-08-06 14:18:32 +00:00
renegadespork a530eaa3a8 chore: Add changelog for config documentation. 2026-08-06 14:18:32 +00:00
Erwan Leboucher 1b6bc83b9f fix(sync): Preserve batched read receipts 2026-08-06 14:01:52 +00:00
PerformativeJade cdf07a8811 chore: Add changelog line 2026-08-06 12:18:26 +00:00
timedout d79ffe6ef0 chore: Throwing newsfrag! 2026-08-05 21:11:05 +00:00
stratself 5402c4f208 chore: Add changelog for docker command change 2026-08-05 18:00:11 +00:00
stratself e19f634ffa chore: Add changelogs for some important doc things 2026-08-05 18:00:11 +00:00
alexia 4e9ed55c6b chore: add changelog 2026-08-04 19:03:13 +00:00
stratself 4fea19b0e3 fix: Separate changelogs for important configuration changes 2026-08-04 18:18:54 +00:00
stratself 61be6aa7c6 chore: Fix changelog to better reflect changes 2026-08-04 18:18:54 +00:00
stratself e14a86026a chore: Update changelogs 2026-08-04 18:18:54 +00:00
stratself c2641488bf chore: Update changelog in detail 2026-08-04 18:18:54 +00:00
stratself a7b5fa4edc chore: Add changelog and fix trailing whitespace 2026-08-04 18:18:54 +00:00
Erwan Leboucher aa884fad6b feat(sync): Add MSC4480 sticky events 2026-08-03 14:35:53 +00:00
Erwan Leboucher 43197f695c feat(sync): Add MSC4354 sticky events 2026-08-02 17:28:00 +00:00
Erwan Leboucher 7789399ba5 fix(sync): Apply MSC4186 room filters 2026-08-02 18:33:57 +02:00
Erwan Leboucher 27a559a751 fix(sync): Wake sync loops on typing updates 2026-08-02 18:05:27 +02:00
Erwan Leboucher 74591d24e5 fix(sync): Avoid missed long-poll wake-ups 2026-08-02 15:22:18 +00:00
Jacob Taylor 4146e0f1da fix: Resolve membership service by correct name for auto-join 2026-08-01 22:32:25 -07:00
Erwan Leboucher 8481efb482 chore(deps): Update Ruma 2026-08-01 23:50:48 +02:00
timedout 3f69334f9a chore: Update changelog 2026-07-30 19:10:53 +01:00
timedout 1ca30e4268 chore: Fix missing whitespace in previous commit's changelog
My IDE has beef with pre-commit for some reason
2026-07-29 16:45:50 +01:00
timedoutandErwan Leboucher 71016a0d7f fix: SEC20
Reviewed-By: Ginger <ginger@gingershaped.computer>
Co-Authored-By: Erwan Leboucher <erwanleboucher@gmail.com>
2026-07-29 16:41:59 +01:00
Ginger 9bfd41000e chore: Update changelog 2026-07-27 15:56:32 -04:00
Murph Murphy 71bd471bb7 Update after trying to run as much as I could locally via docker 2026-07-27 15:48:48 -04:00
Ginger 44d7e6cf4f chore: News fragment 2026-07-27 19:28:15 +00:00
Ginger 4a40290514 chore: News fragment 2026-07-27 14:36:42 -04:00
timedout c677847e29 chore: Add newsfrag 2026-07-27 15:20:07 +00:00
timedout 4ccb4463b6 chore: Add newsfrag 2026-07-27 15:56:30 +01:00
timedout 9894e2a6d1 fix: Rephrase newsfrag 2026-07-27 14:21:38 +00:00
Ginger e431a13a1a chore: News fragment 2026-07-27 14:21:38 +00:00
Erwan Leboucher e161b5f01e perf: Fetch joined member count once per event when notifying 2026-07-26 14:40:34 +00:00
Erwan Leboucher a0fa4cf0fe fix: Deliver simplified sliding sync account data without hanging 2026-07-26 14:17:21 +00:00
Erwan Leboucher 08c22b5fcc fix(sync): Wake local target user after membership changes are committed 2026-07-26 14:12:37 +00:00
Ginger 64b14cfad2 chore: News fragment 2026-07-25 14:16:34 +00:00
reaster fb7a378d63 deduplicate rooms in hierarchy traversal 2026-07-25 13:55:30 +00:00
Erwan Leboucher 4727f07e26 fix: Correct roomuserid_lastnotificationread table alias
roomuserid_lastnotificationread was mapped to userroomid_highlightcount
instead of its own table, so last_notification_read() read the highlight
count and reset_notification_counts clobbered the highlight table when
setting a read marker. Add the missing table definition and fix the alias.
2026-07-24 01:13:42 +00:00
Erwan Leboucher b144b18aef fix(sync): Verify state for newly-left rooms is in incremental sync 2026-07-21 18:32:34 +00:00
Omar Pakker bee92b58e7 chore: Add towncrier news fragment 2026-07-21 14:35:55 +00:00
Ginger 4c9426a13f feat: Add support for OAuth2 device auth flow 2026-07-21 13:42:50 +00:00
Deniel9204 25264308ab fix: Use the requested device ID when an appservice creates a device
The appservice branch of update_device_route (MSC4190 device creation)
generated a random device ID instead of using the one from the request
path, and dropped the requested display name. The PUT returned 200, but
the device the appservice asked for never existed, so every subsequent
request masquerading as that device failed with M_FORBIDDEN and one
orphaned random-ID device was left behind per attempt.

This made encrypted mautrix (bridgev2) bridges unable to start on
OIDC-enabled servers, where MSC4190 is the only available device
creation mechanism: /keys/upload failed on first start and /keys/query
on every restart. Combined with the pre-1f5e178c3f behaviour (400
"Token conflicts with an existing appservice token"), MSC4190 device
creation has never worked end-to-end in any release.

Create the device under the requested ID and forward the requested
display name.
2026-07-21 08:21:09 +02:00