SECURITY: please cut new release (actix-tls)
tessus opened this issue · comments
Is it possible to create a new release?
The current release of actix-tls
uses a webpki-roots
version that still uses the vulnerable unmaintained webpki
crate instaed of rustls-webpki
.
actix-tls
release was cut a few days ago https://github.com/actix/actix-net/releases/tag/tls-v3.1.0
Actix Web component of this work is ongoing.
Oh, sorry, I missed that one.
Oh no. something is still off:
├── actix-files v0.6.2
│ ├── actix-http v3.3.1
│ │ ├── actix-codec v0.5.1
│ │ │ ├── bitflags v1.3.2
│ │ │ ├── bytes v1.4.0
│ │ │ ├── futures-core v0.3.28
│ │ │ ├── futures-sink v0.3.28
│ │ │ ├── memchr v2.5.0
│ │ │ ├── pin-project-lite v0.2.13
│ │ │ ├── tokio v1.32.0
│ │ │ │ ├── bytes v1.4.0
│ │ │ │ ├── libc v0.2.147
│ │ │ │ ├── mio v0.8.8
│ │ │ │ │ ├── libc v0.2.147
│ │ │ │ │ └── log v0.4.20
│ │ │ │ ├── parking_lot v0.12.1
│ │ │ │ │ ├── lock_api v0.4.10
│ │ │ │ │ │ └── scopeguard v1.2.0
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ │ └── parking_lot_core v0.9.8
│ │ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ │ ├── libc v0.2.147
│ │ │ │ │ └── smallvec v1.11.0
│ │ │ │ ├── pin-project-lite v0.2.13
│ │ │ │ ├── signal-hook-registry v1.4.1
│ │ │ │ │ └── libc v0.2.147
│ │ │ │ └── socket2 v0.5.3
│ │ │ │ └── libc v0.2.147
│ │ │ ├── tokio-util v0.7.8
│ │ │ │ ├── bytes v1.4.0
│ │ │ │ ├── futures-core v0.3.28
│ │ │ │ ├── futures-sink v0.3.28
│ │ │ │ ├── pin-project-lite v0.2.13
│ │ │ │ ├── tokio v1.32.0 (*)
│ │ │ │ └── tracing v0.1.37
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── log v0.4.20
│ │ │ │ ├── pin-project-lite v0.2.13
│ │ │ │ └── tracing-core v0.1.31
│ │ │ │ └── once_cell v1.18.0
│ │ │ └── tracing v0.1.37 (*)
│ │ ├── actix-rt v2.9.0
│ │ │ ├── actix-macros v0.2.4 (proc-macro)
│ │ │ │ ├── quote v1.0.33
│ │ │ │ │ └── proc-macro2 v1.0.66
│ │ │ │ │ └── unicode-ident v1.0.11
│ │ │ │ └── syn v2.0.29
│ │ │ │ ├── proc-macro2 v1.0.66 (*)
│ │ │ │ ├── quote v1.0.33 (*)
│ │ │ │ └── unicode-ident v1.0.11
│ │ │ ├── futures-core v0.3.28
│ │ │ └── tokio v1.32.0 (*)
│ │ ├── actix-service v2.0.2
│ │ │ ├── futures-core v0.3.28
│ │ │ ├── paste v1.0.14 (proc-macro)
│ │ │ └── pin-project-lite v0.2.13
│ │ ├── actix-tls v3.1.0
│ │ │ ├── actix-rt v2.9.0 (*)
│ │ │ ├── actix-service v2.0.2 (*)
│ │ │ ├── actix-utils v3.0.1
│ │ │ │ ├── local-waker v0.1.3
│ │ │ │ └── pin-project-lite v0.2.13
│ │ │ ├── futures-core v0.3.28
│ │ │ ├── http v0.2.9
│ │ │ │ ├── bytes v1.4.0
│ │ │ │ ├── fnv v1.0.7
│ │ │ │ └── itoa v1.0.9
│ │ │ ├── impl-more v0.1.6
│ │ │ ├── pin-project-lite v0.2.13
│ │ │ ├── tokio v1.32.0 (*)
│ │ │ ├── tokio-rustls v0.23.4
│ │ │ │ ├── rustls v0.20.8
│ │ │ │ │ ├── log v0.4.20
│ │ │ │ │ ├── ring v0.16.20
│ │ │ │ │ │ ├── spin v0.5.2
│ │ │ │ │ │ └── untrusted v0.7.1
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── cc v1.0.83
│ │ │ │ │ │ ├── jobserver v0.1.26
│ │ │ │ │ │ │ └── libc v0.2.147
│ │ │ │ │ │ └── libc v0.2.147
│ │ │ │ │ ├── sct v0.7.0
│ │ │ │ │ │ ├── ring v0.16.20 (*)
│ │ │ │ │ │ └── untrusted v0.7.1
│ │ │ │ │ └── webpki v0.22.0
│ │ │ │ │ ├── ring v0.16.20 (*)
│ │ │ │ │ └── untrusted v0.7.1
│ │ │ │ ├── tokio v1.32.0 (*)
│ │ │ │ └── webpki v0.22.0 (*)
│ │ │ ├── tokio-util v0.7.8 (*)
│ │ │ ├── tracing v0.1.37 (*)
│ │ │ └── webpki-roots v0.22.6
│ │ │ └── webpki v0.22.0 (*)
As you can see actix-tls v3.1.0
uses an old version of tokio-rustls
, which uses a version of rusttls
that uses the unmaintained webpki
.
Thus after actix-tls
has been updated to use the latest version of tokio-rustls, the actix crates actix-files
and actix-http
also need to be updated to use the new actix-tls
which then uses the proper tokio-rustls
that uess a version of rustls that uses rustls-webpki.
Man, this is a dependency hell.
All relevant crates now have a rustls-0_21
feature flag that needs to be enabled instead. All this work was done in a non-breaking way so small code changes are necessary to remove the old Rustls/webpki from your dep tree.