Skip to content

[1.21] April 4 CVEs#2

Merged
jbohanon merged 5 commits intoenvoy-gloo/v1.21from
backports/v1.21.x/apr4-cves
Apr 25, 2023
Merged

[1.21] April 4 CVEs#2
jbohanon merged 5 commits intoenvoy-gloo/v1.21from
backports/v1.21.x/apr4-cves

Conversation

@jbohanon
Copy link
Copy Markdown

@jbohanon jbohanon commented Apr 17, 2023

Backports of April 4 CVE fixes from upstream's release/v1.22 (commits page). This is an attempt to capture relevant pieces of the diff from before Apr 4 to the release v1.22.10 (diff).

Backporting from release/v1.22 was selected to attempt to minimize merge conflicts from unrelated features/fixes that have entered the codebase in later versions.

These changes are being ported onto v1.21.5 due to some breaking changes introduced causing difficulties compiling, specifically in this PR. These will need to be resolved if we ever need to bump to a later released version of Envoy 1.21.x, but for now this will unblock work requiring a patched envoy-gloo release.

I have manually gone through each of the relevant commits and validated that necessary logic and testing of change behavior was included.

@jbohanon jbohanon added the work in progress This pr is still being worked on label Apr 17, 2023
@jbohanon jbohanon force-pushed the backports/v1.21.x/apr4-cves branch from b636f8a to 065680c Compare April 20, 2023 13:48
@jbohanon jbohanon changed the base branch from release/v1.21 to envoy-gloo/v1.21 April 20, 2023 17:36
Copy link
Copy Markdown

@ben-taussig-solo ben-taussig-solo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are being ported onto v1.21.5 due to some breaking changes introduced causing difficulties compiling, specifically in envoyproxy#19275.

I guess my biggest concern is whether envoy-gloo/envoy-gloo-ee depend on any of the changes that went into 1.21.6 (as far as I can tell the only upstream v1.21.x release published after v1.21.5)

Otherwise, this seems good to me!

@jbohanon
Copy link
Copy Markdown
Author

These changes are being ported onto v1.21.5 due to some breaking changes introduced causing difficulties compiling, specifically in envoyproxy#19275.

I guess my biggest concern is whether envoy-gloo/envoy-gloo-ee depend on any of the changes that went into 1.21.6 (as far as I can tell the only upstream v1.21.x release published after v1.21.5)

Otherwise, this seems good to me!

The commit on which envoy-gloo release-v1.21 currently depends (link) is the commit sha for release v1.21.5 (link), and envoy-gloo-ee consumes upstream transitively through envoy-gloo

@nfuden
Copy link
Copy Markdown

nfuden commented Apr 24, 2023

i wonder if we should just call this release-1.21 as that branch will easily get fastforwarded by upstream commits

@jbohanon
Copy link
Copy Markdown
Author

i wonder if we should just call this release-1.21 as that branch will easily get fastforwarded by upstream commits

We're explicitly not following upstream commits since we are branched at 1.21.5 and not tracking upstream release-v1.21

@jbohanon
Copy link
Copy Markdown
Author

Proceeding with merge despite failing checks from upstream since our consuming repo is passing CI with these changes, indicating successful builds and tests (envoy-gloo PR)

@jbohanon jbohanon merged this pull request into envoy-gloo/v1.21 Apr 25, 2023
@jbohanon jbohanon deleted the backports/v1.21.x/apr4-cves branch April 26, 2023 10:35
ben-taussig-solo pushed a commit that referenced this pull request Jan 29, 2024
Commit Message: the probing socket is released when port migration fails. If this happens in response to an incoming packet during an I/O event, the follow socket read could cause use-after-free.

[2024-01-08 16:30:53.386][12][critical][backtrace] [./source/server/backtrace.h:104] Caught Segmentation fault, suspect faulting address 0x0
[2024-01-08 16:30:53.387][12][critical][backtrace] [./source/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2024-01-08 16:30:53.387][12][critical][backtrace] [./source/server/backtrace.h:92] Envoy version: 0/1.29.0-dev/test/DEBUG/BoringSSL
[2024-01-08 16:30:53.413][12][critical][backtrace] [./source/server/backtrace.h:96] #0: Envoy::SignalAction::sigHandler() [0x55bb876d499e]
[2024-01-08 16:30:53.413][12][critical][backtrace] [./source/server/backtrace.h:98] #1: [0x7f55fbf92510]
[2024-01-08 16:30:53.440][12][critical][backtrace] [./source/server/backtrace.h:96] #2: Envoy::Network::Utility::readPacketsFromSocket() [0x55bb875de0ef]
[2024-01-08 16:30:53.466][12][critical][backtrace] [./source/server/backtrace.h:96] #3: Envoy::Quic::EnvoyQuicClientConnection::onFileEvent() [0x55bb8663e1eb]
[2024-01-08 16:30:53.492][12][critical][backtrace] [./source/server/backtrace.h:96] #4: Envoy::Quic::EnvoyQuicClientConnection::setUpConnectionSocket()::$_0::operator()() [0x55bb8663f192]
[2024-01-08 16:30:53.518][12][critical][backtrace] [./source/server/backtrace.h:96] #5: std::__invoke_impl<>() [0x55bb8663f151]
[2024-01-08 16:30:53.544][12][critical][backtrace] [./source/server/backtrace.h:96] #6: std::__invoke_r<>() [0x55bb8663f0e2]
[2024-01-08 16:30:53.569][12][critical][backtrace] [./source/server/backtrace.h:96] #7: std::_Function_handler<>::_M_invoke() [0x55bb8663efc2]
[2024-01-08 16:30:53.595][12][critical][backtrace] [./source/server/backtrace.h:96] #8: std::function<>::operator()() [0x55bb85cb8f44]
[2024-01-08 16:30:53.621][12][critical][backtrace] [./source/server/backtrace.h:96] #9: Envoy::Event::DispatcherImpl::createFileEvent()::$_5::operator()() [0x55bb8722560f]
[2024-01-08 16:30:53.648][12][critical][backtrace] [./source/server/backtrace.h:96] #10: std::__invoke_impl<>() [0x55bb872255c1]
[2024-01-08 16:30:53.674][12][critical][backtrace] [./source/server/backtrace.h:96] #11: std::__invoke_r<>() [0x55bb87225562]
[2024-01-08 16:30:53.700][12][critical][backtrace] [./source/server/backtrace.h:96] #12: std::_Function_handler<>::_M_invoke() [0x55bb872253e2]
[2024-01-08 16:30:53.700][12][critical][backtrace] [./source/server/backtrace.h:96] #13: std::function<>::operator()() [0x55bb85cb8f44]
[2024-01-08 16:30:53.726][12][critical][backtrace] [./source/server/backtrace.h:96] #14: Envoy::Event::FileEventImpl::mergeInjectedEventsAndRunCb() [0x55bb872358ec]
[2024-01-08 16:30:53.752][12][critical][backtrace] [./source/server/backtrace.h:96] #15: Envoy::Event::FileEventImpl::assignEvents()::$_1::operator()() [0x55bb87235ed1]
[2024-01-08 16:30:53.778][12][critical][backtrace] [./source/server/backtrace.h:96] #16: Envoy::Event::FileEventImpl::assignEvents()::$_1::__invoke() [0x55bb87235949]
[2024-01-08 16:30:53.804][12][critical][backtrace] [./source/server/backtrace.h:96] #17: event_persist_closure [0x55bb87fab72b]
[2024-01-08 16:30:53.830][12][critical][backtrace] [./source/server/backtrace.h:96] #18: event_process_active_single_queue [0x55bb87faada2]
[2024-01-08 16:30:53.856][12][critical][backtrace] [./source/server/backtrace.h:96] #19: event_process_active [0x55bb87fa56c8]
[2024-01-08 16:30:53.882][12][critical][backtrace] [./source/server/backtrace.h:96] #20: event_base_loop [0x55bb87fa45cc]
[2024-01-08 16:30:53.908][12][critical][backtrace] [./source/server/backtrace.h:96] #21: Envoy::Event::LibeventScheduler::run() [0x55bb8760a59f]
Risk Level: low
Testing: new unit test
Docs Changes: N/A
Release Notes: Yes
Platform Specific Features: N/A

Signed-off-by: Dan Zhang <danzh@google.com>
Co-authored-by: Dan Zhang <danzh@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

work in progress This pr is still being worked on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants