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.
{
    "url": "https://pkg.go.dev/vuln/GO-2024-2831",
    "review_status": "REVIEWED"
}{
    "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"
            ]
        }
    ]
}