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

bug: malformed operator response can crash the aggregator #1747

Closed
Oppen opened this issue Jan 16, 2025 · 0 comments · Fixed by #1753
Closed

bug: malformed operator response can crash the aggregator #1747

Oppen opened this issue Jan 16, 2025 · 0 comments · Fixed by #1753
Labels
aggregator audit cantina Audit report from Cantina

Comments

@Oppen
Copy link
Collaborator

Oppen commented Jan 16, 2025

From cantina#32. Transcript:

Due to a nil dereference, a malicious operator can bring down an aggregator by nil dereference when verifying the bls key.

Inside SendSignedTaskResponseToAggregator(), a call is made to the aggregator.

The payload that is provided is from the following type:

type SignedTaskResponse struct {
	BatchMerkleRoot [32]byte
	SenderAddress [20]byte
	BatchIdentifierHash [32]byte
	BlsSignature    bls.Signature
	OperatorId      eigentypes.OperatorId
}
If we take a look further inside bls.Signature:

type Signature struct {
	*G1Point `json:"g1_point"`
}
We see that it is a pointer to G1Point.

This opens up the ability of any operator to force the receiving aggregator to panic.

Please follow along with the Proof of Concept below, which will demonstrate the panic on a running localnet.

Given we don't control the signature type and forking would be overkill, the fix consists in adding a nil-check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aggregator audit cantina Audit report from Cantina
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant