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

[EXT-SEC-AUDIT] Excessive gRPC timeout #2121

Open
kostko opened this issue Sep 18, 2019 · 2 comments
Open

[EXT-SEC-AUDIT] Excessive gRPC timeout #2121

kostko opened this issue Sep 18, 2019 · 2 comments
Labels
c:common Category: common libraries c:security Category: security sensitive

Comments

@kostko
Copy link
Member

kostko commented Sep 18, 2019

Issue transferred from an external security audit report.

Nodes are configured to use an excessively long timeout of 10 minutes when accepting
gRPC connections.

https://github.com/oasislabs/ekiden/blob/7a5ddc8fae312b6d8400fa9ba062604c1112c6a4/go/common/grpc/grpc.go#L71-L73

Short term, set MaxConnectionIdle to a lower value (e.g., 5 seconds).

Long term, make this value configurable to support applications that require a longer timeout. Ensure the default value is kept low, as recommended above.

@kostko kostko added c:common Category: common libraries c:security Category: security sensitive labels Sep 18, 2019
@Yawning
Copy link
Contributor

Yawning commented Sep 20, 2019

I don't think this helps all that much. There are enough easy to generate requests that can be used to keep connections open indefinitely, for a fairly minimum increase in the amount of work the adversary needs to do.

@kostko
Copy link
Member Author

kostko commented Sep 20, 2019

Yeah and some requests can currently be quite expensive which requires request-specific mitigations (e.g., for storage #1914 and #1984) in addition to the gRPC sentry proxy (#1829) that we have planned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c:common Category: common libraries c:security Category: security sensitive
Projects
None yet
Development

No branches or pull requests

2 participants