1
+ {
2
+ "schema_version" : " 1.3.1" ,
3
+ "id" : " GO-2024-3112" ,
4
+ "modified" : " 0001-01-01T00:00:00Z" ,
5
+ "published" : " 0001-01-01T00:00:00Z" ,
6
+ "aliases" : [
7
+ " GHSA-g5xx-c4hv-9ccc"
8
+ ],
9
+ "summary" : " CometBFT's state syncing validator from malicious node may lead to a chain split github.com/cometbft/cometbft" ,
10
+ "details" : " CometBFT's state syncing validator from malicious node may lead to a chain split github.com/cometbft/cometbft" ,
11
+ "affected" : [
12
+ {
13
+ "package" : {
14
+ "name" : " github.com/cometbft/cometbft" ,
15
+ "ecosystem" : " Go"
16
+ },
17
+ "ranges" : [
18
+ {
19
+ "type" : " SEMVER" ,
20
+ "events" : [
21
+ {
22
+ "introduced" : " 0.37.0"
23
+ },
24
+ {
25
+ "fixed" : " 0.37.11"
26
+ },
27
+ {
28
+ "introduced" : " 0.38.0"
29
+ },
30
+ {
31
+ "fixed" : " 0.38.12"
32
+ }
33
+ ]
34
+ }
35
+ ],
36
+ "ecosystem_specific" : {
37
+ "imports" : [
38
+ {
39
+ "path" : " github.com/cometbft/cometbft/light" ,
40
+ "symbols" : [
41
+ " Client.TrustedLightBlock" ,
42
+ " Client.Update" ,
43
+ " Client.VerifyHeader" ,
44
+ " Client.VerifyLightBlockAtHeight" ,
45
+ " Client.compareFirstHeaderWithWitnesses" ,
46
+ " Client.compareNewHeaderWithWitness" ,
47
+ " Client.detectDivergence" ,
48
+ " Client.findNewPrimary" ,
49
+ " Client.initializeWithTrustOptions" ,
50
+ " ErrInvalidHeader.Error" ,
51
+ " ErrNewValSetCantBeTrusted.Error" ,
52
+ " ErrOldHeaderExpired.Error" ,
53
+ " ErrVerificationFailed.Error" ,
54
+ " NewClient" ,
55
+ " NewClientFromTrustedStore" ,
56
+ " NewHTTPClient" ,
57
+ " NewHTTPClientFromTrustedStore" ,
58
+ " TrustOptions.ValidateBasic" ,
59
+ " ValidateTrustLevel" ,
60
+ " Verify" ,
61
+ " VerifyAdjacent" ,
62
+ " VerifyBackwards" ,
63
+ " VerifyNonAdjacent" ,
64
+ " errBadWitness.Error" ,
65
+ " errConflictingHeaders.Error"
66
+ ]
67
+ },
68
+ {
69
+ "path" : " github.com/cometbft/cometbft/types" ,
70
+ "symbols" : [
71
+ " ABCIParams.VoteExtensionsEnabled" ,
72
+ " Block.Hash" ,
73
+ " Block.HashesTo" ,
74
+ " Block.MakePartSet" ,
75
+ " Block.Size" ,
76
+ " Block.String" ,
77
+ " Block.StringIndented" ,
78
+ " Block.StringShort" ,
79
+ " Block.ToProto" ,
80
+ " Block.ValidateBasic" ,
81
+ " BlockFromProto" ,
82
+ " BlockID.Key" ,
83
+ " BlockID.String" ,
84
+ " BlockID.ValidateBasic" ,
85
+ " BlockIDFromProto" ,
86
+ " BlockMeta.ValidateBasic" ,
87
+ " BlockMetaFromProto" ,
88
+ " BlockMetaFromTrustedProto" ,
89
+ " CanonicalTime" ,
90
+ " CanonicalizeBlockID" ,
91
+ " CanonicalizeProposal" ,
92
+ " CanonicalizeVote" ,
93
+ " Commit.GetVote" ,
94
+ " Commit.Hash" ,
95
+ " Commit.StringIndented" ,
96
+ " Commit.ToVoteSet" ,
97
+ " Commit.ValidateBasic" ,
98
+ " Commit.VoteSignBytes" ,
99
+ " CommitFromProto" ,
100
+ " CommitSig.BlockID" ,
101
+ " CommitSig.FromProto" ,
102
+ " CommitSig.String" ,
103
+ " CommitSig.ValidateBasic" ,
104
+ " ConsensusParams.ValidateBasic" ,
105
+ " ConsensusParams.ValidateUpdate" ,
106
+ " Data.StringIndented" ,
107
+ " DuplicateVoteEvidence.Bytes" ,
108
+ " DuplicateVoteEvidence.Hash" ,
109
+ " DuplicateVoteEvidence.String" ,
110
+ " DuplicateVoteEvidence.ValidateBasic" ,
111
+ " DuplicateVoteEvidenceFromProto" ,
112
+ " ErrEvidenceOverflow.Error" ,
113
+ " ErrInvalidCommitHeight.Error" ,
114
+ " ErrInvalidCommitSignatures.Error" ,
115
+ " ErrInvalidEvidence.Error" ,
116
+ " ErrNotEnoughVotingPowerSigned.Error" ,
117
+ " ErrVoteConflictingVotes.Error" ,
118
+ " ErrVoteExtensionInvalid.Error" ,
119
+ " EventBus.OnStart" ,
120
+ " EventBus.OnStop" ,
121
+ " EventBus.PublishEventNewBlock" ,
122
+ " EventBus.PublishEventNewBlockEvents" ,
123
+ " EventBus.PublishEventTx" ,
124
+ " EventQueryTxFor" ,
125
+ " EvidenceData.ByteSize" ,
126
+ " EvidenceData.FromProto" ,
127
+ " EvidenceData.Hash" ,
128
+ " EvidenceData.StringIndented" ,
129
+ " EvidenceData.ToProto" ,
130
+ " EvidenceFromProto" ,
131
+ " EvidenceList.Has" ,
132
+ " EvidenceList.Hash" ,
133
+ " EvidenceList.String" ,
134
+ " EvidenceToProto" ,
135
+ " ExtendedCommit.EnsureExtensions" ,
136
+ " ExtendedCommit.GetByIndex" ,
137
+ " ExtendedCommit.GetExtendedVote" ,
138
+ " ExtendedCommit.ToExtendedVoteSet" ,
139
+ " ExtendedCommit.ValidateBasic" ,
140
+ " ExtendedCommitFromProto" ,
141
+ " ExtendedCommitSig.EnsureExtension" ,
142
+ " ExtendedCommitSig.FromProto" ,
143
+ " ExtendedCommitSig.String" ,
144
+ " ExtendedCommitSig.ValidateBasic" ,
145
+ " GenesisDoc.SaveAs" ,
146
+ " GenesisDoc.ValidateAndComplete" ,
147
+ " GenesisDoc.ValidatorHash" ,
148
+ " GenesisDocFromFile" ,
149
+ " GenesisDocFromJSON" ,
150
+ " Header.Hash" ,
151
+ " Header.StringIndented" ,
152
+ " Header.ValidateBasic" ,
153
+ " HeaderFromProto" ,
154
+ " LightBlock.String" ,
155
+ " LightBlock.StringIndented" ,
156
+ " LightBlock.ToProto" ,
157
+ " LightBlock.ValidateBasic" ,
158
+ " LightBlockFromProto" ,
159
+ " LightClientAttackEvidence.Bytes" ,
160
+ " LightClientAttackEvidence.Hash" ,
161
+ " LightClientAttackEvidence.String" ,
162
+ " LightClientAttackEvidence.ToProto" ,
163
+ " LightClientAttackEvidence.ValidateBasic" ,
164
+ " LightClientAttackEvidenceFromProto" ,
165
+ " MakeBlock" ,
166
+ " MakeExtCommit" ,
167
+ " MakeVote" ,
168
+ " MakeVoteNoError" ,
169
+ " MaxDataBytes" ,
170
+ " MaxDataBytesNoEvidence" ,
171
+ " MockPV.SignProposal" ,
172
+ " MockPV.SignVote" ,
173
+ " MockPV.String" ,
174
+ " NewBlockMeta" ,
175
+ " NewDuplicateVoteEvidence" ,
176
+ " NewErroringMockPV" ,
177
+ " NewMockDuplicateVoteEvidence" ,
178
+ " NewMockDuplicateVoteEvidenceWithValidator" ,
179
+ " NewMockPV" ,
180
+ " NewValidatorSet" ,
181
+ " Part.String" ,
182
+ " Part.StringIndented" ,
183
+ " Part.ValidateBasic" ,
184
+ " PartFromProto" ,
185
+ " PartSet.AddPart" ,
186
+ " PartSet.MarshalJSON" ,
187
+ " PartSet.StringShort" ,
188
+ " PartSetHeader.String" ,
189
+ " PartSetHeader.ValidateBasic" ,
190
+ " PartSetHeaderFromProto" ,
191
+ " Proposal.String" ,
192
+ " Proposal.ValidateBasic" ,
193
+ " ProposalFromProto" ,
194
+ " ProposalSignBytes" ,
195
+ " QueryForEvent" ,
196
+ " RandValidator" ,
197
+ " RandValidatorSet" ,
198
+ " SignAndCheckVote" ,
199
+ " SignedHeader.String" ,
200
+ " SignedHeader.StringIndented" ,
201
+ " SignedHeader.ValidateBasic" ,
202
+ " SignedHeaderFromProto" ,
203
+ " Tx.String" ,
204
+ " TxProof.Validate" ,
205
+ " TxProofFromProto" ,
206
+ " Txs.Validate" ,
207
+ " ValidateHash" ,
208
+ " Validator.Bytes" ,
209
+ " Validator.String" ,
210
+ " Validator.ToProto" ,
211
+ " Validator.ValidateBasic" ,
212
+ " ValidatorFromProto" ,
213
+ " ValidatorListString" ,
214
+ " ValidatorSet.CopyIncrementProposerPriority" ,
215
+ " ValidatorSet.GetProposer" ,
216
+ " ValidatorSet.Hash" ,
217
+ " ValidatorSet.IncrementProposerPriority" ,
218
+ " ValidatorSet.Iterate" ,
219
+ " ValidatorSet.String" ,
220
+ " ValidatorSet.StringIndented" ,
221
+ " ValidatorSet.ToProto" ,
222
+ " ValidatorSet.TotalVotingPower" ,
223
+ " ValidatorSet.UpdateWithChangeSet" ,
224
+ " ValidatorSet.ValidateBasic" ,
225
+ " ValidatorSet.VerifyCommit" ,
226
+ " ValidatorSet.VerifyCommitLight" ,
227
+ " ValidatorSet.VerifyCommitLightAllSignatures" ,
228
+ " ValidatorSet.VerifyCommitLightTrusting" ,
229
+ " ValidatorSet.VerifyCommitLightTrustingAllSignatures" ,
230
+ " ValidatorSet.findProposer" ,
231
+ " ValidatorSetFromExistingValidators" ,
232
+ " ValidatorSetFromProto" ,
233
+ " VerifyCommit" ,
234
+ " VerifyCommitLight" ,
235
+ " VerifyCommitLightAllSignatures" ,
236
+ " VerifyCommitLightTrusting" ,
237
+ " VerifyCommitLightTrustingAllSignatures" ,
238
+ " Vote.CommitSig" ,
239
+ " Vote.ExtendedCommitSig" ,
240
+ " Vote.String" ,
241
+ " Vote.ValidateBasic" ,
242
+ " Vote.Verify" ,
243
+ " Vote.VerifyExtension" ,
244
+ " Vote.VerifyVoteAndExtension" ,
245
+ " VoteExtensionSignBytes" ,
246
+ " VoteFromProto" ,
247
+ " VoteSet.AddVote" ,
248
+ " VoteSet.BitArrayByBlockID" ,
249
+ " VoteSet.BitArrayString" ,
250
+ " VoteSet.HasAll" ,
251
+ " VoteSet.HasTwoThirdsAny" ,
252
+ " VoteSet.LogString" ,
253
+ " VoteSet.MakeExtendedCommit" ,
254
+ " VoteSet.MarshalJSON" ,
255
+ " VoteSet.SetPeerMaj23" ,
256
+ " VoteSet.String" ,
257
+ " VoteSet.StringIndented" ,
258
+ " VoteSet.StringShort" ,
259
+ " VoteSet.VoteStrings" ,
260
+ " VoteSignBytes"
261
+ ]
262
+ }
263
+ ],
264
+ "custom_ranges" : [
265
+ {
266
+ "type" : " ECOSYSTEM" ,
267
+ "events" : [
268
+ {
269
+ "introduced" : " 0.34.0"
270
+ },
271
+ {
272
+ "fixed" : " 0.34.34"
273
+ }
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ }
279
+ ],
280
+ "references" : [
281
+ {
282
+ "type" : " ADVISORY" ,
283
+ "url" : " https://github.com/cometbft/cometbft/security/advisories/GHSA-g5xx-c4hv-9ccc"
284
+ },
285
+ {
286
+ "type" : " FIX" ,
287
+ "url" : " https://github.com/cometbft/cometbft/commit/3937e00a339ee6b861d75997b4f6c87d867b74f2"
288
+ },
289
+ {
290
+ "type" : " FIX" ,
291
+ "url" : " https://github.com/cometbft/cometbft/commit/52c00a537f8f56ed94b4a5c8af6e3fecff468b55"
292
+ }
293
+ ],
294
+ "database_specific" : {
295
+ "url" : " https://pkg.go.dev/vuln/GO-2024-3112" ,
296
+ "review_status" : " REVIEWED"
297
+ }
298
+ }
0 commit comments