actix / actix-net

A collection of lower-level libraries for composable network services.

Home Page:https://actix.rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.