Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve CVE-2023-32731 #4647

Merged
merged 2 commits into from
Jul 11, 2023
Merged

Conversation

reyang
Copy link
Member

@reyang reyang commented Jul 10, 2023

When gRPC HTTP2 stack raised a header size exceeded error, it skipped parsing the rest of the HPACK frame. This caused any HPACK table mutations to also be skipped, resulting in a desynchronization of HPACK tables between sender and receiver. If leveraged, say, between a proxy and a backend, this could lead to requests from the proxy being interpreted as containing headers from different proxy clients - leading to an information leak that can be used for privilege escalation or data exfiltration.

grpc/grpc#32309

@reyang reyang requested a review from a team July 10, 2023 23:16
@codecov
Copy link

codecov bot commented Jul 10, 2023

Codecov Report

Merging #4647 (ab4ce47) into main (66a6062) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #4647   +/-   ##
=======================================
  Coverage   84.98%   84.99%           
=======================================
  Files         314      314           
  Lines       12683    12685    +2     
=======================================
+ Hits        10779    10781    +2     
  Misses       1904     1904           
Impacted Files Coverage Δ
...tation.AspNetCore/Implementation/HttpInListener.cs 90.47% <100.00%> (+0.10%) ⬆️

@@ -7,7 +7,7 @@
<ItemGroup>
<PackageVersion Include="Google.Protobuf" Version="[3.19.4,4.0)" />
<PackageVersion Include="Grpc" Version="[2.44.0,3.0)" />
<PackageVersion Include="Grpc.Net.Client" Version="[2.45.0,3.0)" />
<PackageVersion Include="Grpc.Net.Client" Version="[2.52.0,3.0)" />
Copy link
Member

@alanwest alanwest Jul 11, 2023

Choose a reason for hiding this comment

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

Are you sure 2.52.0 contains the fix? Based on the PR you reference, it looks like when it was merged its commit is tagged with 2.53.0 grpc/grpc@29d8bee

Copy link
Member

Choose a reason for hiding this comment

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

Oh, my mistake the fix was the PR is against the core grpc repo not Grpc.Net.Client.

Copy link
Contributor

@utpilla utpilla Jul 11, 2023

Choose a reason for hiding this comment

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

2.52.0 is also the lowest available version of the package with no known vulnerabilities.

https://www.nuget.org/packages/Grpc.Net.Client

Copy link
Member Author

Choose a reason for hiding this comment

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

https://www.nuget.org/packages/Grpc.Net.Client this is the one we'll be using.
I guess the general rule here is to reference the lowest version that is not deprecated?

image

@alanwest
Copy link
Member

@Kielek heads up...

@utpilla
Copy link
Contributor

utpilla commented Jul 11, 2023

@open-telemetry/dotnet-instrumentation-maintainers FYI

@utpilla utpilla merged commit f95c689 into open-telemetry:main Jul 11, 2023
@reyang reyang deleted the reyang/CVE-2023-32731 branch July 11, 2023 22:07
@Kielek
Copy link
Contributor

Kielek commented Jul 19, 2023

@alanwest, thanks for the information. Unfortunately, it is a good reason to update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants