Conversation
This branch updates the proxy's `prost` dependency to a patched version of `prost` 0.5 that incorporates the cahnges in danburkert/prost#268. This patch fixes a security issue where a malicious protobuf message could be used to trigger a stack overflow. We are unfortunately unable to easily update to `prost` 0.6.1, which includes this fix, as 0.6 updates the `bytes` dependency to 0.5. The `tokio` 0.1 ecosystem that the proxy currently uses still depends on 0.4, and the breaking changes in 0.5 are quite significant. Therefore, updating to `bytes` 0.5 would require a lot of fairly large changes to legacy versions of...pretty much everything (`tokio-io`, `tokio-buf`, `hyper`, `http-body`...). As we intend to update to `tokio` 0.2 in the near future, patching all these legacy dependencies is a bit of a waste of time. Therefore, I opted to backport the security fix to a compatible `prost` version instead. Closes inkerd/linkerd2#3963 Signed-off-by: Eliza Weisman <eliza@buoyant.io>
Contributor
Author
|
unfortunately, |
seanmonstar
approved these changes
Jan 23, 2020
olix0r
approved these changes
Jan 23, 2020
Member
olix0r
left a comment
There was a problem hiding this comment.
Thanks! LGTM once it passes CI
olix0r
added a commit
to linkerd/linkerd2
that referenced
this pull request
Feb 4, 2020
This release fixes a bug in the proxy's logging subsystem that could cause the proxy to consume memory until the process is OOMKilled, especially when the proxy was configured to log diagnostic information. The proxy also now properly emits `grpc-status` headers when signaling proxy errors to gRPC clients. This release upgrades the proxy's Rust version, the `http` crate dependency to address RUSTSEC-2019-0033 and RUSTSEC-2019-0034, and the `prost` crate dependency has been patched to address RUSTSEC-2020-02. --- * internal: Introduce a locking middleware (linkerd/linkerd2-proxy#408) * Update to Rust 1.40 with new Cargo.lock format (linkerd/linkerd2-proxy#410) * Update http to v0.1.21 (linkerd/linkerd2-proxy#412) * internal: Split retry, http-classify, and http-metrics (linkerd/linkerd2-proxy#409) * Actually update http to v0.1.21 (linkerd/linkerd2-proxy#413) * patch `prost` 0.5 to pick up security fix (linkerd/linkerd2-proxy#414) * metrics: Make Counter & Gauge atomic (linkerd/linkerd2-proxy#415) * Set grpc-status headers on dispatch errors (linkerd/linkerd2-proxy#416) * trace: update `tracing-subscriber` to 0.2.0-alpha.4 (linkerd/linkerd2-proxy#418) * discover: Warn on discovery error (linkerd/linkerd2-proxy#422) * router: Avoid large up-front allocations (linkerd/linkerd2-proxy#421) * errors: Set correct HTTP version on responses (linkerd/linkerd2-proxy#424) * app: initialize tracing prior to parsing env vars (linkerd/linkerd2-proxy#425) * trace: update tracing-subscriber to 0.2.0-alpha.6 (linkerd/linkerd2-proxy#423)
adleong
pushed a commit
to linkerd/linkerd2
that referenced
this pull request
Feb 4, 2020
This release fixes a bug in the proxy's logging subsystem that could cause the proxy to consume memory until the process is OOMKilled, especially when the proxy was configured to log diagnostic information. The proxy also now properly emits `grpc-status` headers when signaling proxy errors to gRPC clients. This release upgrades the proxy's Rust version, the `http` crate dependency to address RUSTSEC-2019-0033 and RUSTSEC-2019-0034, and the `prost` crate dependency has been patched to address RUSTSEC-2020-02. --- * internal: Introduce a locking middleware (linkerd/linkerd2-proxy#408) * Update to Rust 1.40 with new Cargo.lock format (linkerd/linkerd2-proxy#410) * Update http to v0.1.21 (linkerd/linkerd2-proxy#412) * internal: Split retry, http-classify, and http-metrics (linkerd/linkerd2-proxy#409) * Actually update http to v0.1.21 (linkerd/linkerd2-proxy#413) * patch `prost` 0.5 to pick up security fix (linkerd/linkerd2-proxy#414) * metrics: Make Counter & Gauge atomic (linkerd/linkerd2-proxy#415) * Set grpc-status headers on dispatch errors (linkerd/linkerd2-proxy#416) * trace: update `tracing-subscriber` to 0.2.0-alpha.4 (linkerd/linkerd2-proxy#418) * discover: Warn on discovery error (linkerd/linkerd2-proxy#422) * router: Avoid large up-front allocations (linkerd/linkerd2-proxy#421) * errors: Set correct HTTP version on responses (linkerd/linkerd2-proxy#424) * app: initialize tracing prior to parsing env vars (linkerd/linkerd2-proxy#425) * trace: update tracing-subscriber to 0.2.0-alpha.6 (linkerd/linkerd2-proxy#423)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This branch updates the proxy's
prostdependency to a patched versionof
prost0.5 that incorporates the cahnges in danburkert/prost#268.This patch fixes a security issue where a malicious protobuf message
could be used to trigger a stack overflow.
We are unfortunately unable to easily update to
prost0.6.1, whichincludes this fix, as 0.6 updates the
bytesdependency to 0.5. Thetokio0.1 ecosystem that the proxy currently uses still depends on0.4, and the breaking changes in 0.5 are quite significant. Therefore,
updating to
bytes0.5 would require a lot of fairly large changes tolegacy versions of...pretty much everything (
tokio-io,tokio-buf,hyper,http-body...). As we intend to update totokio0.2 in thenear future, patching all these legacy dependencies is a bit of a waste
of time. Therefore, I opted to backport the security fix to a compatible
prostversion instead.Closes linkerd/linkerd2#3963
Signed-off-by: Eliza Weisman eliza@buoyant.io