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

fix(header): check that Commit corresponds to Header #2215

Merged
merged 2 commits into from
May 16, 2023

Conversation

Wondertan
Copy link
Member

During the BEFP discussion on TG with @vgonkivs, we figured out that with have CRITICAL vulnerability in the header validation process. The funniest part is that we abuse this vulnerability to make our BEFP test in Swamp work, and the test represents the exact scenario of such vulnerability: a malicious BN/FN can substitute any value in RawHeader it wants like DAH and the verification on the client side still passes. This is because we don't check that BlockID(Hash) in Commit is aligned with recomputed RawHeader hash.

Unfortunately, this breaks our BEFP testing suite, and the only way to reliably produce FPs now is by modifying the Core/App node.

image

@Wondertan Wondertan added area:header Extended header kind:fix Attached to bug-fixing PRs labels May 16, 2023
vgonkivs
vgonkivs previously approved these changes May 16, 2023
@vgonkivs
Copy link
Member

Next step: rework all swamp tests to accept the already broken block

Copy link
Member

@renaynay renaynay left a comment

Choose a reason for hiding this comment

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

Holy hell.

@Wondertan Wondertan merged commit 84eccbf into main May 16, 2023
@Wondertan Wondertan deleted the hlib/header/validate-commit-matches-header branch May 16, 2023 13:37
Wondertan added a commit that referenced this pull request May 16, 2023
#2215 was approved and merged too quickly, making some tests fail. This PR fixes that. Expect further a new PR to clean up Validate func and increase coverage for it.
vgonkivs pushed a commit to vgonkivs/celestia-node that referenced this pull request May 22, 2023
During the BEFP discussion on TG with @vgonkivs, we figured out that with have CRITICAL vulnerability in the header validation process. The funniest part is that we abuse this vulnerability to make our BEFP test in Swamp work, and the test represents the exact scenario of such vulnerability: a malicious BN/FN can substitute any value in RawHeader it wants like DAH and the verification on the client side still passes. This is because we don't check that BlockID(Hash) in Commit is aligned with recomputed RawHeader hash.

Unfortunately, this breaks our BEFP testing suite, and the only way to reliably produce FPs now is by modifying the Core/App node.
vgonkivs pushed a commit to vgonkivs/celestia-node that referenced this pull request May 22, 2023
celestiaorg#2215 was approved and merged too quickly, making some tests fail. This PR fixes that. Expect further a new PR to clean up Validate func and increase coverage for it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:header Extended header kind:fix Attached to bug-fixing PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants