Nodes can publish ATXs which reference the incorrect previous ATX of the Smesher that created the ATX. ATXs are expected to form a single chain from the newest to the first ATX ever published by an identity. Allowing Smeshers to reference an earlier (but not the latest) ATX as previous breaks this protocol rule.
{ "review_status": "REVIEWED", "url": "https://pkg.go.dev/vuln/GO-2024-2831" }
{ "imports": [ { "path": "github.com/spacemeshos/go-spacemesh/activation", "symbols": [ "Handler.HandleGossipAtx", "Handler.SyntacticallyValidateDeps", "Handler.processATX", "Handler.storeAtx" ] }, { "path": "github.com/spacemeshos/go-spacemesh/events", "symbols": [ "CloseEventReporter", "EmitAtxPublished", "EmitBeacon", "EmitEligibilities", "EmitInitComplete", "EmitInitFailure", "EmitInitStart", "EmitInvalidPostProof", "EmitOwnMalfeasanceProof", "EmitPoetWaitProof", "EmitPoetWaitRound", "EmitPostComplete", "EmitPostFailure", "EmitPostServiceStarted", "EmitPostServiceStopped", "EmitPostStart", "EmitProposal", "InitializeReporter", "LayerUpdate.Field", "ReportAccountUpdate", "ReportError", "ReportLayerUpdate", "ReportMalfeasance", "ReportNewActivation", "ReportNewTx", "ReportNodeStatusUpdate", "ReportProposal", "ReportResult", "ReportRewardReceived", "ReportTxWithValidity", "SubcribeProposals", "Subscribe", "SubscribeAccount", "SubscribeActivations", "SubscribeErrors", "SubscribeLayers", "SubscribeMalfeasance", "SubscribeMatched", "SubscribeRewards", "SubscribeStatus", "SubscribeToLayers", "SubscribeTxs", "SubscribeUserEvents", "ToMalfeasancePB" ] }, { "path": "github.com/spacemeshos/go-spacemesh/malfeasance", "symbols": [ "Handler.HandleSyncedMalfeasanceProof", "Validate" ] }, { "path": "github.com/spacemeshos/go-spacemesh/malfeasance/wire", "symbols": [ "AtxProof.DecodeScale", "AtxProof.MarshalLogObject", "AtxProofMsg.DecodeScale", "AtxProofMsg.SignedBytes", "BallotProof.DecodeScale", "BallotProof.MarshalLogObject", "BallotProofMsg.DecodeScale", "BallotProofMsg.SignedBytes", "HareMetadata.DecodeScale", "HareMetadata.ToBytes", "HareProof.DecodeScale", "HareProof.MarshalLogObject", "HareProofMsg.DecodeScale", "HareProofMsg.SignedBytes", "InvalidPostIndexProof.DecodeScale", "InvalidPostIndexProof.EncodeScale", "MalfeasanceGossip.DecodeScale", "MalfeasanceGossip.EncodeScale", "MalfeasanceInfo", "MalfeasanceProof.DecodeScale", "MalfeasanceProof.EncodeScale", "MalfeasanceProof.MarshalLogObject", "Proof.DecodeScale", "Proof.EncodeScale" ] }, { "path": "github.com/spacemeshos/go-spacemesh/node", "symbols": [ "App.setupDBs", "App.verifyDB" ] }, { "path": "github.com/spacemeshos/go-spacemesh/sql/atxs", "symbols": [ "Add", "AddGettingNonce", "IterateIDsByEpoch" ] } ] }