Skip to content

Update rustls-webpki to distrust eMudhra Intermediate certificates - #20392

Merged
MadLittleMods merged 3 commits into
developfrom
madlittlemods/eMudhra-ca-rust-deps
Oct 22, 2026
Merged

MadLittleMods merged 3 commits into
developfrom
madlittlemods/eMudhra-ca-rust-deps

Conversation

@MadLittleMods

@MadLittleMods MadLittleMods commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Update rustls-webpki to distrust eMudhra Intermediate certificates (release notes)

Part of https://github.com/element-hq/backend-internal/issues/306

Related to #20387

We already use the system CA store when making requests in our Rust code (using the rustls-tls-native-roots (docs) feature with reqwest). For a system that already has a patched system CA store, bumping rustls-webpki is simply extra protection as it actively blocks those untrusted certs. For an unpatched system CA store, this provides a stop-gap.

Dev notes

$ cargo tree --invert rustls-webpki
rustls-webpki v0.103.16
└── rustls v0.23.45
    ├── hyper-rustls v0.27.7
    │   └── reqwest v0.12.28
    │       └── synapse v0.1.0 (/home/eric/Documents/github/element/synapse/rust)
    ├── reqwest v0.12.28 (*)
    └── tokio-rustls v0.26.2
        ├── hyper-rustls v0.27.7 (*)
        └── reqwest v0.12.28 (*)

Pull Request Checklist

  • Pull request is based on the develop branch
  • Pull request includes a changelog file. The entry should:
    • Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from EventStore to EventWorkerStore.".
    • Use markdown where necessary, mostly for code blocks.
    • End with either a period (.) or an exclamation mark (!).
    • Start with a capital letter.
    • Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry.
  • Code style is correct (run the linters)

@MadLittleMods
MadLittleMods marked this pull request as ready for review October 22, 2026 11:16
@MadLittleMods
MadLittleMods requested a review from a team as a code owner October 22, 2026 11:16
@MadLittleMods
MadLittleMods requested review from reivilibre and removed request for a team October 22, 2026 11:16
@MadLittleMods
MadLittleMods merged commit 3366ea7 into develop Oct 22, 2026
115 of 119 checks passed
@MadLittleMods
MadLittleMods deleted the madlittlemods/eMudhra-ca-rust-deps branch October 22, 2026 14:49
@MadLittleMods

Copy link
Copy Markdown
Contributor Author

Thanks for the review @reivilibre 🦢

MadLittleMods added a commit that referenced this pull request Oct 22, 2026
…20392)

`rustls-webpki` releasenotes: https://github.com/rustls/webpki/releases/tag/v%2F0.103.16

Part of element-hq/backend-internal#306

Related to #20387

We already use the system CA store when making requests in our Rust code
(using the
[`rustls-tls-native-roots`](https://github.com/element-hq/synapse/blob/7c85c80033ea5c3ca3851f3dab1d0397b94d5183/rust/Cargo.toml#L61)
([docs](https://docs.rs/reqwest/0.12.28/reqwest/#optional-features))
feature with `reqwest`). For a system that already has a patched system
CA store, bumping `rustls-webpki` is simply extra protection as it
actively blocks those untrusted certs. For an unpatched system CA store,
this provides a stop-gap.


### Dev notes

```shell
$ cargo tree --invert rustls-webpki
rustls-webpki v0.103.16
└── rustls v0.23.45
    ├── hyper-rustls v0.27.7
    │   └── reqwest v0.12.28
    │       └── synapse v0.1.0 (/home/eric/Documents/github/element/synapse/rust)
    ├── reqwest v0.12.28 (*)
    └── tokio-rustls v0.26.2
        ├── hyper-rustls v0.27.7 (*)
        └── reqwest v0.12.28 (*)
```
MadLittleMods added a commit that referenced this pull request Oct 22, 2026
…20392)

`rustls-webpki` releasenotes: https://github.com/rustls/webpki/releases/tag/v%2F0.103.16

Part of element-hq/backend-internal#306

Related to #20387

We already use the system CA store when making requests in our Rust code
(using the
[`rustls-tls-native-roots`](https://github.com/element-hq/synapse/blob/7c85c80033ea5c3ca3851f3dab1d0397b94d5183/rust/Cargo.toml#L61)
([docs](https://docs.rs/reqwest/0.12.28/reqwest/#optional-features))
feature with `reqwest`). For a system that already has a patched system
CA store, bumping `rustls-webpki` is simply extra protection as it
actively blocks those untrusted certs. For an unpatched system CA store,
this provides a stop-gap.


### Dev notes

```shell
$ cargo tree --invert rustls-webpki
rustls-webpki v0.103.16
└── rustls v0.23.45
    ├── hyper-rustls v0.27.7
    │   └── reqwest v0.12.28
    │       └── synapse v0.1.0 (/home/eric/Documents/github/element/synapse/rust)
    ├── reqwest v0.12.28 (*)
    └── tokio-rustls v0.26.2
        ├── hyper-rustls v0.27.7 (*)
        └── reqwest v0.12.28 (*)
```
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Oct 25, 2026
Tested on NetBSD 10 amd64 with 2026Q3 environment.

Packaging changes:

  - drop mio patch because synapse uses newer mio with a fix

# Synapse 1.163.1 (2026-10-22)

## Internal Changes

- Update `certifi` to `2026.10.19` to address [GHSA-6q48-6c7w-9gw2](GHSA-6q48-6c7w-9gw2). This only affects TLS connections made by the Sentry SDK when `sentry` is configured, SAML, and a couple utility scripts; federation and Synapse's other outbound HTTP requests use the system trust store. ([\#20387](element-hq/synapse#20387))
- Bump `rustls-webpki` to `0.103.16` to actively distrust [compromised eMudhra intermediate CA certificates](https://emudhra.we-have-a-problem.com/). ([\#20392](element-hq/synapse#20392))

# Synapse 1.163.0 (2026-10-14)

## Features

- Advertise support for Matrix v1.14. Contributed by @famedly. ([\#20137](element-hq/synapse#20137))
- Advertise support for Matrix v1.15. ([\#20286](element-hq/synapse#20286))
- Catch up [MSC4354 Sticky Events](matrix-org/matrix-spec-proposals#4354) to remote homeservers that have missed them. ([\#20165](element-hq/synapse#20165))
- Add push rules for [MSC4075](matrix-org/matrix-spec-proposals#4075): MatrixRTC invites and notifications. ([\#20227](element-hq/synapse#20227))
- Make the task scheduler concurrency configurable via `task_scheduler.max_concurrent_tasks`, defaulting to 5. ([\#20230](element-hq/synapse#20230))
- Cancel a user's scheduled [MSC4140](matrix-org/matrix-spec-proposals#4140) delayed events when their account is deactivated. ([\#20247](element-hq/synapse#20247))

## Deprecations and Removals

- Remove the ability to send state events that are sticky, as this feature was removed from [MSC4354: Sticky Events](matrix-org/matrix-spec-proposals#4354). ([\#20256](element-hq/synapse#20256))

# Synapse 1.162.0 (2026-09-29)

## Features

- Raise default room version to "12". Contributed by @jason-famedly @famedly. ([\#20130](element-hq/synapse#20130))
- Limit the number of end-to-end encryption one-time keys stored per device to 500 per algorithm, rejecting uploads which would exceed the limit with a `400 Bad Request`. ([\#20162](element-hq/synapse#20162))
- Add support for configuring a `username` for Redis connections, for Redis 6+ ACL authentication. ([\#20187](element-hq/synapse#20187))
- Add a rate limit on the client profile lookup endpoints, configurable via `rc_profile`. ([\#20218](element-hq/synapse#20218))
sakaru pushed a commit to sakaru/synapse that referenced this pull request Oct 28, 2026
…lement-hq#20392)

`rustls-webpki` releasenotes: https://github.com/rustls/webpki/releases/tag/v%2F0.103.16

Part of https://github.com/element-hq/backend-internal/issues/306

Related to element-hq#20387

We already use the system CA store when making requests in our Rust code
(using the
[`rustls-tls-native-roots`](https://github.com/element-hq/synapse/blob/7c85c80033ea5c3ca3851f3dab1d0397b94d5183/rust/Cargo.toml#L61)
([docs](https://docs.rs/reqwest/0.12.28/reqwest/#optional-features))
feature with `reqwest`). For a system that already has a patched system
CA store, bumping `rustls-webpki` is simply extra protection as it
actively blocks those untrusted certs. For an unpatched system CA store,
this provides a stop-gap.


### Dev notes

```shell
$ cargo tree --invert rustls-webpki
rustls-webpki v0.103.16
└── rustls v0.23.45
    ├── hyper-rustls v0.27.7
    │   └── reqwest v0.12.28
    │       └── synapse v0.1.0 (/home/eric/Documents/github/element/synapse/rust)
    ├── reqwest v0.12.28 (*)
    └── tokio-rustls v0.26.2
        ├── hyper-rustls v0.27.7 (*)
        └── reqwest v0.12.28 (*)
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants