Envoy is a cloud-native high-performance edge/middle/service proxy. In affected versions sendOverloadError
is going to assume the active request exists when envoy.load_shed_points.http1_server_abort_dispatch
is configured. If active_request
is nullptr, only onMessageBeginImpl() is called. However, the onMessageBeginImpl
will directly return ok status if the stream is already reset leading to the nullptr reference. The downstream reset can actually happen during the H/2 upstream reset. As a result envoy may crash. This issue has been addressed in releases 1.32.3, 1.31.5, 1.30.9, and 1.29.12. Users are advised to upgrade. Users unable to upgrade may disable http1_server_abort_dispatch
load shed point and/or use a high threshold.
The code contains a control flow path that does not reflect the algorithm that the path is intended to implement, leading to incorrect behavior any time this path is navigated.