Skip to content

Commit 0383ec2

Browse files
committed
improve validation of risc0 verifier info length
Signed-off-by: Jun Kimura <[email protected]>
1 parent 293fac8 commit 0383ec2

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

contracts/LCPClientZKDCAPBase.sol

+2-1
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@ abstract contract LCPClientZKDCAPBase is LCPClientBase {
279279
if (uint8(verifierInfo[0]) != ZKVM_TYPE_RISC_ZERO) {
280280
revert LCPClientZKDCAPInvalidVerifierInfoZKVMType();
281281
}
282-
if (vlen < 64) {
282+
// risc0 verifier info should be 64 bytes
283+
if (vlen != 64) {
283284
revert LCPClientZKDCAPInvalidVerifierInfoLength();
284285
}
285286
// 32..64 bytes: image ID

test/LCPClientZKDCAPTest.t.sol

+7
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,7 @@ contract LCPClientZKDCAPTest is BasicTest {
670670
vm.warp(ZKDCAPTestHelper.TEST_TIMESTAMP);
671671
bytes memory consensusStateBytes = LCPProtoMarshaler.marshal(defaultConsensusState());
672672
IbcLightclientsLcpV1ClientState.Data memory clientState = defaultClientState();
673+
bytes memory valid_zkdcap_verifier_info = clientState.zkdcap_verifier_infos[0];
673674
clientState.zkdcap_verifier_infos[0] = new bytes(0);
674675
bytes memory clientStateBytes = LCPProtoMarshaler.marshal(clientState);
675676
vm.expectRevert();
@@ -689,6 +690,12 @@ contract LCPClientZKDCAPTest is BasicTest {
689690
clientStateBytes = LCPProtoMarshaler.marshal(clientState);
690691
vm.expectRevert();
691692
lc.initializeClient(clientId, clientStateBytes, consensusStateBytes);
693+
694+
clientState.zkdcap_verifier_infos = new bytes[](1);
695+
clientState.zkdcap_verifier_infos[0] = abi.encodePacked(valid_zkdcap_verifier_info, bytes1(0x0));
696+
clientStateBytes = LCPProtoMarshaler.marshal(clientState);
697+
vm.expectRevert();
698+
lc.initializeClient(clientId, clientStateBytes, consensusStateBytes);
692699
}
693700

694701
function testInitializeClientInvalidValues() public {

0 commit comments

Comments
 (0)