test: Assert RPC Server binds before creating cookie#26964
Closed
willcl-ark wants to merge 3 commits intobitcoin:masterfrom
Closed
test: Assert RPC Server binds before creating cookie#26964willcl-ark wants to merge 3 commits intobitcoin:masterfrom
willcl-ark wants to merge 3 commits intobitcoin:masterfrom
Conversation
This allows specification that log entries should be detected in the order they are passed in through their argument list.
If we don't bind before creating the authentication cookie a race condition exists where malware could restart the node, bind to the RPC port and read the current cookie before bitcoind binds.
Contributor
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process. ConflictsNo conflicts as of last run. |
This was referenced Feb 11, 2023
Member
|
The feature request didn't seem to attract much attention in the past. Also, the issue seems not important enough right now to keep it sitting around idle in the list of open issues. Closing due to lack of interest. Pull requests with improvements are always welcome. |
Member
|
Is this related to CVE-2018-20587?
Edit: This doesn't fix anything, just tests for correct behaviour. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
If the RPC server does not bind first there exists a race condition between malware and bitcoind to bind to the port and recieve a cookie request from external application.
This test relies on the order of log messages, which may (I don't know) be slightly brittle. However because both
InitHTTPServer()andStartHTTPRPC()are called in single-threaded series from withinAppInitServers()it should work well enough.bitcoin/src/init.cpp
Lines 667 to 672 in 50ac8f5