This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.

Crate vector

Dependencies

(140 total, 31 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 async-stream^0.3.60.3.6up to date
 async-trait^0.1.880.1.88up to date
 tokio^1.44.21.45.0up to date
 tokio-openssl^0.6.50.6.5up to date
 tokio-stream^0.1.170.1.17up to date
 tokio-util^0.70.7.15up to date
 console-subscriber^0.4.10.4.1up to date
 tracing^0.1.340.1.41up to date
 tracing-core^0.1.260.1.33up to date
 tracing-futures^0.2.50.2.5up to date
 tracing-subscriber^0.3.190.3.19up to date
 aws-runtime^1.5.61.5.7up to date
 aws-config^1.6.11.6.3up to date
 aws-credential-types^1.2.31.2.3up to date
 aws-sdk-cloudwatch^1.70.01.76.0up to date
 aws-sdk-cloudwatchlogs^1.76.01.85.0up to date
 aws-sdk-elasticsearch^1.67.01.73.0up to date
 aws-sdk-firehose^1.71.01.78.0up to date
 aws-sdk-kinesis^1.66.01.74.0up to date
 aws-sdk-kms^1.65.01.71.0up to date
 aws-sdk-s3^1.15.01.88.0up to date
 aws-sdk-secretsmanager^1.68.01.74.0up to date
 aws-sdk-sns^1.65.01.71.0up to date
 aws-sdk-sqs^1.64.01.70.0up to date
 aws-types^1.3.71.3.7up to date
 aws-sdk-sts^1.65.01.71.0up to date
 aws-sigv4^1.3.11.3.2up to date
 aws-smithy-async^1.2.51.2.5up to date
 aws-smithy-http^0.620.62.1up to date
 aws-smithy-runtime^1.8.31.8.3up to date
 aws-smithy-runtime-api^1.7.31.8.0up to date
 aws-smithy-types^1.2.111.3.1up to date
 azure_core^0.170.24.0out of date
 azure_identity^0.170.24.0out of date
 azure_storage^0.170.21.0out of date
 azure_storage_blobs^0.170.21.0out of date
 opendal^0.530.53.2up to date
 tower^0.4.130.5.2out of date
 tower-http^0.4.40.6.4out of date
 serde-toml-merge^0.3.90.3.9up to date
 serde_bytes^0.11.170.11.17up to date
 serde_with^3.12.03.12.0up to date
 serde_yaml^0.9.340.9.34+deprecatedup to date
 rmp-serde^1.3.01.3.0up to date
 rmpv^1.3.01.3.0up to date
 goauth^0.14.00.16.0out of date
 smpl_jwt^0.8.00.8.0up to date
 lapin^2.5.32.5.3up to date
 async-graphql^7.0.167.0.17up to date
 async-graphql-warp^7.0.167.0.17up to date
 crossterm^0.29.00.29.0up to date
 num-format^0.4.40.4.4up to date
 number_prefix^0.4.00.4.0up to date
 ratatui^0.29.00.29.0up to date
 hex^0.4.30.4.3up to date
 arc-swap^1.71.7.1up to date
 async-compression^0.4.230.4.23up to date
 apache-avro^0.16.00.18.0out of date
 axum^0.6.200.8.4out of date
 base64^0.22.10.22.1up to date
 bloomy^1.2.01.2.0up to date
 bollard^0.16.10.19.0out of date
 bytes^1.10.11.10.1up to date
 bytesize^2.0.12.0.1up to date
 colored^3.0.03.0.0up to date
 csv^1.31.3.1up to date
 databend-client^0.22.20.27.3out of date
 derivative^2.2.02.2.0up to date
 dirs-next^2.0.02.0.0up to date
 dyn-clone^1.0.191.0.19up to date
 encoding_rs^0.8.350.8.35up to date
 enum_dispatch^0.3.130.3.13up to date
 evmap^10.0.210.0.2up to date
 evmap-derive^0.2.00.2.0up to date
 exitcode^1.1.21.1.2up to date
 futures-util^0.3.290.3.31up to date
 governor^0.7.00.10.0out of date
 h2^0.4.90.4.10up to date
 hash_hasher^2.0.02.0.3up to date
 hashbrown^0.14.50.15.3out of date
 headers^0.3.90.4.0out of date
 hostname^0.4.00.4.1up to date
 http^1.01.3.1up to date
 http-serde^1.1.32.1.1out of date
 http-body^0.4.51.0.1out of date
 hyper^0.14.281.6.0out of date
 hyper-openssl^0.9.20.10.2out of date
 hyper-proxy^0.9.10.9.1up to date
 inventory^0.3.200.3.20up to date
 ipnet^22.11.0up to date
 itertools^0.14.00.14.0up to date
 k8s-openapi^0.22.00.25.0out of date
 kube^0.93.01.0.0out of date
 listenfd^1.0.21.0.2up to date
 lru^0.14.00.14.0up to date
 maxminddb^0.26.00.26.0up to date
 md-5^0.100.10.6up to date
 mongodb^2.8.23.2.3out of date
 async-nats^0.33.00.41.0out of date
 nkeys^0.4.40.4.4up to date
 nom^7.1.38.0.0out of date
 notify^8.0.08.0.0up to date
 openssl^0.10.720.10.72up to date
 openssl-probe^0.1.60.1.6up to date
 ordered-float^4.6.05.0.0out of date
 percent-encoding^2.3.12.3.1up to date
 postgres-openssl^0.5.10.5.1up to date
 pulsar^6.3.06.3.1up to date
 quick-junit^0.5.10.5.1up to date
 rdkafka^0.37.00.37.0up to date
 redis^0.24.00.31.0out of date
 regex^1.11.11.11.1up to date
 roaring^0.10.120.10.12up to date
 rumqttc^0.24.00.24.0up to date
 seahash^4.1.04.1.0up to date
 smallvec ⚠️^11.15.0maybe insecure
 snap^1.1.11.1.1up to date
 socket2^0.5.90.5.9up to date
 sqlx^0.8.50.8.6up to date
 stream-cancel^0.8.20.8.2up to date
 strip-ansi-escapes^0.2.10.2.1up to date
 syslog^6.1.17.0.0out of date
 tikv-jemallocator^0.6.00.6.0up to date
 tokio-postgres^0.7.130.7.13up to date
 tokio-tungstenite^0.20.10.26.2out of date
 thread_local^1.1.81.1.8up to date
 typetag^0.2.200.2.20up to date
 url^2.5.42.5.4up to date
 warp^0.3.70.3.7up to date
 zstd^0.13.00.13.3up to date
 arr_macro^0.2.10.2.1up to date
 mlua^0.10.30.10.3up to date
 sysinfo^0.34.20.35.1out of date
 byteorder^1.5.01.5.0up to date
 windows-service^0.7.00.8.0out of date
 nix^0.26.20.30.1out of date
 netlink-packet-utils^0.5.20.6.0out of date
 netlink-packet-sock-diag^0.4.20.4.2up to date
 netlink-packet-core^0.7.00.7.0up to date
 netlink-sys^0.8.70.8.7up to date

Dev dependencies

(21 total, 6 outdated)

CrateRequiredLatestStatus
 approx^0.5.10.5.1up to date
 assert_cmd^2.0.172.0.17up to date
 aws-smithy-runtime^1.8.31.8.3up to date
 azure_core^0.170.24.0out of date
 azure_identity^0.170.24.0out of date
 azure_storage_blobs^0.170.21.0out of date
 azure_storage^0.170.21.0out of date
 base64^0.22.10.22.1up to date
 criterion^0.5.10.6.0out of date
 itertools^0.14.00.14.0up to date
 libc^0.2.1720.2.172up to date
 similar-asserts^1.7.01.7.0up to date
 quickcheck^1.0.31.0.3up to date
 reqwest^0.110.12.15out of date
 rstest^0.25.00.25.0up to date
 test-generator^0.3.10.3.1up to date
 tokio^1.44.21.45.0up to date
 tokio-test^0.4.40.4.4up to date
 tower-test^0.4.00.4.0up to date
 wiremock^0.6.30.6.3up to date
 zstd^0.13.00.13.3up to date

Build dependencies

(1 total, 1 possibly insecure)

CrateRequiredLatestStatus
 openssl-src ⚠️^300300.5.0+3.5.0maybe insecure

Crate dnsmsg-parser

Dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 data-encoding^2.92.9.0up to date

Dev dependencies

(1 total, 1 outdated)

CrateRequiredLatestStatus
 criterion^0.50.6.0out of date

Crate dnstap-parser

Dependencies

(3 total, all up-to-date)

CrateRequiredLatestStatus
 base64^0.22.10.22.1up to date
 bytes^1.10.11.10.1up to date
 tracing^0.1.340.1.41up to date

Crate fakedata

Dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 fakedata_generator^0.5.00.5.0up to date

Crate portpicker

No external dependencies! 🙌

Crate tracing-limit

Dependencies

(3 total, all up-to-date)

CrateRequiredLatestStatus
 tracing-core^0.10.1.33up to date
 tracing-subscriber^0.30.3.19up to date
 dashmap^6.1.06.1.0up to date

Dev dependencies

(4 total, 1 outdated)

CrateRequiredLatestStatus
 criterion^0.50.6.0out of date
 tracing^0.1.340.1.41up to date
 mock_instant^0.50.5.3up to date
 tracing-subscriber^0.3.190.3.19up to date

Crate vector-common

Dependencies

(8 total, 1 possibly insecure)

CrateRequiredLatestStatus
 async-stream^0.3.60.3.6up to date
 bytes^1.10.11.10.1up to date
 crossbeam-utils^0.8.210.8.21up to date
 derivative^2.2.02.2.0up to date
 smallvec ⚠️^11.15.0maybe insecure
 stream-cancel^0.8.20.8.2up to date
 tokio^1.44.21.45.0up to date
 tracing^0.1.340.1.41up to date

Dev dependencies

(2 total, all up-to-date)

CrateRequiredLatestStatus
 futures^0.3.310.3.31up to date
 tokio^1.44.21.45.0up to date

Crate vector-vrl-functions

No external dependencies! 🙌

Crate loki-logproto

No external dependencies! 🙌

Crate codecs

Dependencies

(14 total, 2 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 apache-avro^0.16.00.18.0out of date
 bytes^11.10.1up to date
 csv-core^0.1.120.1.12up to date
 derivative^22.2.0up to date
 dyn-clone^11.0.19up to date
 influxdb-line-protocol^22.0.0up to date
 memchr^22.7.4up to date
 ordered-float^4.6.05.0.0out of date
 regex^1.11.11.11.1up to date
 serde_with^3.12.03.12.0up to date
 smallvec ⚠️^11.15.0maybe insecure
 syslog_loose^0.210.21.0up to date
 tokio-util^0.70.7.15up to date
 tracing^0.10.1.41up to date

Dev dependencies

(4 total, 1 possibly insecure)

CrateRequiredLatestStatus
 tokio ⚠️^11.45.0maybe insecure
 similar-asserts^1.7.01.7.0up to date
 rstest^0.25.00.25.0up to date
 tracing-test^0.2.50.2.5up to date

Crate docs-renderer

Dependencies

(2 total, all up-to-date)

CrateRequiredLatestStatus
 anyhow^1.0.981.0.98up to date
 tracing^0.1.340.1.41up to date

Crate enrichment

Dependencies

(2 total, all up-to-date)

CrateRequiredLatestStatus
 arc-swap^1.7.11.7.1up to date
 dyn-clone^1.0.191.0.19up to date

Crate file-source

Dependencies

(15 total, 1 possibly insecure)

CrateRequiredLatestStatus
 crc^3.2.13.3.0up to date
 scan_fmt^0.2.60.2.6up to date
 bstr^1.121.12.0up to date
 bytes^1.10.11.10.1up to date
 chrono ⚠️^0.40.4.41maybe insecure
 dashmap^6.16.1.0up to date
 indexmap^2.9.02.9.0up to date
 flate2^1.01.1.1up to date
 futures^0.30.3.31up to date
 serde^1.01.0.219up to date
 serde_json^1.01.0.140up to date
 tracing^0.10.1.41up to date
 tokio^1.44.21.45.0up to date
 libc^0.20.2.172up to date
 winapi^0.30.3.9up to date

Dev dependencies

(3 total, 1 outdated)

CrateRequiredLatestStatus
 criterion^0.50.6.0out of date
 quickcheck^11.0.3up to date
 similar-asserts^1.7.01.7.0up to date

Crate k8s-e2e-tests

Dependencies

(7 total, 2 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 futures^0.30.3.31up to date
 k8s-openapi^0.16.00.25.0out of date
 regex ⚠️^11.11.1maybe insecure
 reqwest^0.11.260.12.15out of date
 tokio^1.44.21.45.0up to date
 env_logger^0.110.11.8up to date
 tracing^0.10.1.41up to date

Crate k8s-test-framework

Dependencies

(3 total, 1 outdated)

CrateRequiredLatestStatus
 k8s-openapi^0.16.00.25.0out of date
 tokio^1.44.21.45.0up to date
 log^0.40.4.27up to date

Crate prometheus-parser

Dependencies

(1 total, 1 outdated)

CrateRequiredLatestStatus
 nom^7.1.38.0.0out of date

Crate opentelemetry-proto

Dependencies

(3 total, 1 outdated)

CrateRequiredLatestStatus
 bytes^1.10.11.10.1up to date
 hex^0.4.30.4.3up to date
 ordered-float^4.6.05.0.0out of date

Crate vector-api-client

Dependencies

(7 total, 2 outdated)

CrateRequiredLatestStatus
 anyhow^1.0.981.0.98up to date
 tokio^1.44.21.45.0up to date
 tokio-stream^0.1.170.1.17up to date
 graphql_client^0.14.00.14.0up to date
 reqwest^0.11.260.12.15out of date
 tokio-tungstenite^0.20.10.26.2out of date
 url^2.5.42.5.4up to date

Crate vector-buffers

Dependencies

(16 total, 2 outdated)

CrateRequiredLatestStatus
 async-recursion^1.1.11.1.1up to date
 async-stream^0.3.60.3.6up to date
 async-trait^0.10.1.88up to date
 bytecheck^0.6.90.8.1out of date
 bytes^1.10.11.10.1up to date
 crc32fast^1.4.21.4.2up to date
 crossbeam-queue^0.3.120.3.12up to date
 crossbeam-utils^0.8.210.8.21up to date
 derivative^2.2.02.2.0up to date
 fslock^0.2.10.2.1up to date
 memmap2^0.9.50.9.5up to date
 num-traits^0.2.190.2.19up to date
 rkyv^0.7.450.8.10out of date
 tokio-util^0.7.00.7.15up to date
 tokio^1.44.21.45.0up to date
 tracing^0.1.340.1.41up to date

Dev dependencies

(10 total, 1 outdated)

CrateRequiredLatestStatus
 criterion^0.50.6.0out of date
 crossbeam-queue^0.3.120.3.12up to date
 hdrhistogram^7.5.47.5.4up to date
 proptest^1.61.6.0up to date
 quickcheck^1.01.0.3up to date
 serde_yaml^0.90.9.34+deprecatedup to date
 temp-dir^0.1.140.1.16up to date
 tokio-test^0.4.40.4.4up to date
 tracing-fluent-assertions^0.30.3.0up to date
 tracing-subscriber^0.3.190.3.19up to date

Crate vector-config

Dependencies

(8 total, 1 outdated)

CrateRequiredLatestStatus
 encoding_rs^0.80.8.35up to date
 inventory^0.30.3.20up to date
 no-proxy^0.3.60.3.6up to date
 num-traits^0.2.190.2.19up to date
 serde_with^3.12.03.12.0up to date
 tracing^0.1.340.1.41up to date
 url^2.5.42.5.4up to date
 http^0.2.91.3.1out of date

Dev dependencies

(2 total, all up-to-date)

CrateRequiredLatestStatus
 assert-json-diff^22.0.2up to date
 serde_with^3.12.03.12.0up to date

Crate vector-config-common

Dependencies

(5 total, 1 outdated)

CrateRequiredLatestStatus
 convert_case^0.70.8.0out of date
 proc-macro2^1.01.0.95up to date
 syn^2.02.0.101up to date
 tracing^0.1.340.1.41up to date
 quote^1.01.0.40up to date

Crate vector-config-macros

Dependencies

(4 total, all up-to-date)

CrateRequiredLatestStatus
 proc-macro2^1.01.0.95up to date
 quote^1.01.0.40up to date
 serde_derive_internals^0.290.29.1up to date
 syn^2.02.0.101up to date

Crate vector-core

Dependencies

(34 total, 4 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 async-trait^0.10.1.88up to date
 bitmask-enum^2.2.52.2.5up to date
 bytes^1.10.11.10.1up to date
 crossbeam-utils^0.8.210.8.21up to date
 derivative^2.2.02.2.0up to date
 dyn-clone^1.0.191.0.19up to date
 enumflags2^0.7.110.7.11up to date
 float_eq^1.01.0.1up to date
 futures-util^0.3.290.3.31up to date
 headers^0.3.90.4.0out of date
 http^0.2.91.3.1out of date
 hyper-proxy^0.9.10.9.1up to date
 ipnet^22.11.0up to date
 mlua^0.10.30.10.3up to date
 no-proxy^0.3.60.3.6up to date
 ordered-float^4.6.05.0.0out of date
 openssl^0.10.720.10.72up to date
 parking_lot^0.12.30.12.3up to date
 proptest^1.61.6.0up to date
 quanta^0.12.50.12.5up to date
 regex^1.11.11.11.1up to date
 ryu^11.0.20up to date
 serde_with^3.12.03.12.0up to date
 smallvec ⚠️^11.15.0maybe insecure
 socket2^0.5.90.5.9up to date
 tokio^1.44.21.45.0up to date
 tokio-openssl^0.6.50.6.5up to date
 tokio-stream^0.10.1.17up to date
 tokio-util^0.7.00.7.15up to date
 tracing^0.1.340.1.41up to date
 url^22.5.4up to date
 urlencoding^2.1.32.1.3up to date
 security-framework^2.10.03.2.0out of date
 schannel^0.1.270.1.27up to date

Dev dependencies

(13 total, 1 outdated)

CrateRequiredLatestStatus
 base64^0.22.10.22.1up to date
 criterion^0.5.10.6.0out of date
 env-test-util^1.0.11.0.1up to date
 quickcheck^11.0.3up to date
 quickcheck_macros^11.1.0up to date
 proptest^1.61.6.0up to date
 similar-asserts^1.7.01.7.0up to date
 tokio-test^0.4.40.4.4up to date
 ndarray^0.16.10.16.1up to date
 ndarray-stats^0.6.00.6.0up to date
 noisy_float^0.2.00.2.0up to date
 serde_yaml^0.9.340.9.34+deprecatedup to date
 tracing-subscriber^0.3.190.3.19up to date

Crate vector-lib

No external dependencies! 🙌

Crate vector-lookup

No external dependencies! 🙌

Crate vector-stream

Dependencies

(7 total, 1 outdated)

CrateRequiredLatestStatus
 async-stream^0.3.60.3.6up to date
 futures-util^0.3.290.3.31up to date
 tokio^1.44.21.45.0up to date
 tokio-util^0.7.00.7.15up to date
 tower^0.40.5.2out of date
 tracing^0.1.340.1.41up to date
 twox-hash^2.1.02.1.0up to date

Dev dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 proptest^1.61.6.0up to date

Crate vector-tap

Dependencies

(9 total, 1 outdated)

CrateRequiredLatestStatus
 async-graphql^7.0.167.0.17up to date
 colored^3.0.03.0.0up to date
 serde_yaml^0.9.340.9.34+deprecatedup to date
 tokio^1.44.21.45.0up to date
 tokio-stream^0.1.170.1.17up to date
 tokio-tungstenite^0.20.10.26.2out of date
 tracing^0.1.340.1.41up to date
 url^2.5.42.5.4up to date
 futures-util^0.3.300.3.31up to date

Dev dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 tokio^1.44.21.45.0up to date

Crate vector-vrl-cli

No external dependencies! 🙌

Crate vector-vrl-tests

Dependencies

(2 total, all up-to-date)

CrateRequiredLatestStatus
 tracing-subscriber^0.3.190.3.19up to date
 tikv-jemallocator^0.6.00.6.0up to date

Crate vector-vrl-web-playground

Dependencies

(3 total, 1 outdated)

CrateRequiredLatestStatus
 wasm-bindgen^0.20.2.100up to date
 gloo-utils^0.20.2.0up to date
 getrandom^0.2.150.3.3out of date

Build dependencies

(1 total, all up-to-date)

CrateRequiredLatestStatus
 cargo-lock^10.1.010.1.0up to date

Crate vdev

Dependencies

(14 total, 2 outdated)

CrateRequiredLatestStatus
 clap-verbosity-flag^3.0.23.0.3up to date
 clap_complete^4.5.484.5.50up to date
 confy^0.6.11.0.0out of date
 directories^6.0.06.0.0up to date
 dunce^1.0.51.0.5up to date
 hex^0.4.30.4.3up to date
 indicatif^0.17.110.17.11up to date
 itertools^0.14.00.14.0up to date
 log^0.4.270.4.27up to date
 owo-colors^4.2.04.2.1up to date
 regex^1.11.11.11.1up to date
 reqwest^0.110.12.15out of date
 serde_yaml^0.9.340.9.34+deprecatedup to date
 sha2^0.10.90.10.9up to date

Security Vulnerabilities

chrono: Potential segfault in `localtime_r` invocations

RUSTSEC-2020-0159

Impact

Unix-like operating systems may segfault due to dereferencing a dangling pointer in specific circumstances. This requires an environment variable to be set in a different thread than the affected functions. This may occur without the user's knowledge, notably in a third-party library.

Workarounds

No workarounds are known.

References

smallvec: Buffer overflow in SmallVec::insert_many

RUSTSEC-2021-0003

A bug in the SmallVec::insert_many method caused it to allocate a buffer that was smaller than needed. It then wrote past the end of the buffer, causing a buffer overflow and memory corruption on the heap.

This bug was only triggered if the iterator passed to insert_many yielded more items than the lower bound returned from its size_hint method.

The flaw was corrected in smallvec 0.6.14 and 1.6.1, by ensuring that additional space is always reserved for each item inserted. The fix also simplified the implementation of insert_many to use less unsafe code, so it is easier to verify its correctness.

Thank you to Yechan Bae (@Qwaz) and the Rust group at Georgia Tech’s SSLab for finding and reporting this bug.

regex: Regexes with large repetitions on empty sub-expressions take a very long time to parse

RUSTSEC-2022-0013

The Rust Security Response WG was notified that the regex crate did not properly limit the complexity of the regular expressions (regex) it parses. An attacker could use this security issue to perform a denial of service, by sending a specially crafted regex to a service accepting untrusted regexes. No known vulnerability is present when parsing untrusted input with trusted regexes.

This issue has been assigned CVE-2022-24713. The severity of this vulnerability is "high" when the regex crate is used to parse untrusted regexes. Other uses of the regex crate are not affected by this vulnerability.

Overview

The regex crate features built-in mitigations to prevent denial of service attacks caused by untrusted regexes, or untrusted input matched by trusted regexes. Those (tunable) mitigations already provide sane defaults to prevent attacks. This guarantee is documented and it's considered part of the crate's API.

Unfortunately a bug was discovered in the mitigations designed to prevent untrusted regexes to take an arbitrary amount of time during parsing, and it's possible to craft regexes that bypass such mitigations. This makes it possible to perform denial of service attacks by sending specially crafted regexes to services accepting user-controlled, untrusted regexes.

Affected versions

All versions of the regex crate before or equal to 1.5.4 are affected by this issue. The fix is include starting from regex 1.5.5.

Mitigations

We recommend everyone accepting user-controlled regexes to upgrade immediately to the latest version of the regex crate.

Unfortunately there is no fixed set of problematic regexes, as there are practically infinite regexes that could be crafted to exploit this vulnerability. Because of this, we do not recommend denying known problematic regexes.

Acknowledgements

We want to thank Addison Crump for responsibly disclosing this to us according to the Rust security policy, and for helping review the fix.

We also want to thank Andrew Gallant for developing the fix, and Pietro Albini for coordinating the disclosure and writing this advisory.

tokio: reject_remote_clients Configuration corruption

RUSTSEC-2023-0001

On Windows, configuring a named pipe server with pipe_mode will force ServerOptions::reject_remote_clients as false.

This drops any intended explicit configuration for the reject_remote_clients that may have been set as true previously.

The default setting of reject_remote_clients is normally true meaning the default is also overridden as false.

Workarounds

Ensure that pipe_mode is set first after initializing a ServerOptions. For example:

let mut opts = ServerOptions::new();
opts.pipe_mode(PipeMode::Message);
opts.reject_remote_clients(true);

openssl-src: X.400 address type confusion in X.509 `GeneralName`

RUSTSEC-2023-0006

There is a type confusion vulnerability relating to X.400 address processing inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING but the public structure definition for GENERAL_NAME incorrectly specified the type of the x400Address field as ASN1_TYPE. This field is subsequently interpreted by the OpenSSL function GENERAL_NAME_cmp as an ASN1_TYPE rather than an ASN1_STRING.

When CRL checking is enabled (i.e. the application sets the X509_V_FLAG_CRL_CHECK flag), this vulnerability may allow an attacker to pass arbitrary pointers to a memcmp call, enabling them to read memory contents or enact a denial of service. In most cases, the attack requires the attacker to provide both the certificate chain and CRL, neither of which need to have a valid signature. If the attacker only controls one of these inputs, the other input must already contain an X.400 address as a CRL distribution point, which is uncommon. As such, this vulnerability is most likely to only affect applications which have implemented their own functionality for retrieving CRLs over a network.

openssl-src: Timing Oracle in RSA Decryption

RUSTSEC-2023-0007

A timing based side channel exists in the OpenSSL RSA Decryption implementation which could be sufficient to recover a plaintext across a network in a Bleichenbacher style attack. To achieve a successful decryption an attacker would have to be able to send a very large number of trial messages for decryption. The vulnerability affects all RSA padding modes: PKCS#1 v1.5, RSA-OEAP and RSASVE.

For example, in a TLS connection, RSA is commonly used by a client to send an encrypted pre-master secret to the server. An attacker that had observed a genuine connection between a client and a server could use this flaw to send trial messages to the server and record the time taken to process them. After a sufficiently large number of messages the attacker could recover the pre-master secret used for the original connection and thus be able to decrypt the application data sent over that connection.

openssl-src: X.509 Name Constraints Read Buffer Overflow

RUSTSEC-2023-0008

A read buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Note that this occurs after certificate chain signature verification and requires either a CA to have signed the malicious certificate or for the application to continue certificate verification despite failure to construct a path to a trusted issuer.

The read buffer overrun might result in a crash which could lead to a denial of service attack. In theory it could also result in the disclosure of private memory contents (such as private keys, or sensitive plaintext) although we are not aware of any working exploit leading to memory contents disclosure as of the time of release of this advisory.

In a TLS client, this can be triggered by connecting to a malicious server. In a TLS server, this can be triggered if the server requests client authentication and a malicious client connects.

openssl-src: Use-after-free following `BIO_new_NDEF`

RUSTSEC-2023-0009

The public API function BIO_new_NDEF is a helper function used for streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL to support the SMIME, CMS and PKCS7 streaming capabilities, but may also be called directly by end user applications.

The function receives a BIO from the caller, prepends a new BIO_f_asn1 filter BIO onto the front of it to form a BIO chain, and then returns the new head of the BIO chain to the caller. Under certain conditions, for example if a CMS recipient public key is invalid, the new filter BIO is freed and the function returns a NULL result indicating a failure. However, in this case, the BIO chain is not properly cleaned up and the BIO passed by the caller still retains internal pointers to the previously freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO then a use-after-free will occur. This will most likely result in a crash.

This scenario occurs directly in the internal function B64_write_ASN1() which may cause BIO_new_NDEF() to be called and will subsequently call BIO_pop() on the BIO. This internal function is in turn called by the public API functions PEM_write_bio_ASN1_stream, PEM_write_bio_CMS_stream, PEM_write_bio_PKCS7_stream, SMIME_write_ASN1, SMIME_write_CMS and SMIME_write_PKCS7.

Other public API functions that may be impacted by this include i2d_ASN1_bio_stream, BIO_new_CMS, BIO_new_PKCS7, i2d_CMS_bio_stream and i2d_PKCS7_bio_stream.

openssl-src: Double free after calling `PEM_read_bio_ex`

RUSTSEC-2023-0010

The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload data. If the function succeeds then the "name_out", "header" and "data" arguments are populated with pointers to buffers containing the relevant decoded data. The caller is responsible for freeing those buffers. It is possible to construct a PEM file that results in 0 bytes of payload data. In this case PEM_read_bio_ex() will return a failure code but will populate the header argument with a pointer to a buffer that has already been freed. If the caller also frees this buffer then a double free will occur. This will most likely lead to a crash. This could be exploited by an attacker who has the ability to supply malicious PEM files for parsing to achieve a denial of service attack.

The functions PEM_read_bio() and PEM_read() are simple wrappers around PEM_read_bio_ex() and therefore these functions are also directly affected.

These functions are also called indirectly by a number of other OpenSSL functions including PEM_X509_INFO_read_bio_ex() and SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL internal uses of these functions are not vulnerable because the caller does not free the header argument if PEM_read_bio_ex() returns a failure code. These locations include the PEM_read_bio_TYPE() functions as well as the decoders introduced in OpenSSL 3.0.

openssl-src: Invalid pointer dereference in `d2i_PKCS7` functions

RUSTSEC-2023-0011

An invalid pointer dereference on read can be triggered when an application tries to load malformed PKCS7 data with the d2i_PKCS7(), d2i_PKCS7_bio() or d2i_PKCS7_fp() functions.

The result of the dereference is an application crash which could lead to a denial of service attack. The TLS implementation in OpenSSL does not call this function however third party applications might call these functions on untrusted data.

openssl-src: `NULL` dereference validating DSA public key

RUSTSEC-2023-0012

An invalid pointer dereference on read can be triggered when an application tries to check a malformed DSA public key by the EVP_PKEY_public_check() function. This will most likely lead to an application crash. This function can be called on public keys supplied from untrusted sources which could allow an attacker to cause a denial of service attack.

The TLS implementation in OpenSSL does not call this function but applications might call the function if there are additional security requirements imposed by standards such as FIPS 140-3.

openssl-src: `NULL` dereference during PKCS7 data verification

RUSTSEC-2023-0013

A NULL pointer can be dereferenced when signatures are being verified on PKCS7 signed or signedAndEnveloped data. In case the hash algorithm used for the signature is known to the OpenSSL library but the implementation of the hash algorithm is not available the digest initialization will fail. There is a missing check for the return value from the initialization function which later leads to invalid usage of the digest API most likely leading to a crash.

The unavailability of an algorithm can be caused by using FIPS enabled configuration of providers or more commonly by not loading the legacy provider.

PKCS7 data is processed by the SMIME library calls and also by the time stamp (TS) library calls. The TLS implementation in OpenSSL does not call these functions however third party applications would be affected if they call these functions to verify signatures on untrusted data.