Highlights
Denial of Service: 38 prior fixes. Scrutinize any change in this area.
rai/node/rpc.cpp: most-fixed (4 issues). Treat as high-risk during review.
26 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Denial of Service: Remotely triggerable null-pointer dereferences and infinite parsing loops during message deserialization allow unauthenticated remote peers to crash the node or exhaust its CPU resources. Strict stream size limits and early validation of deserialized objects are crucial.
Auth Bypass: Failure to enforce cryptographic signature validation on incoming ledger transactions, consensus votes, and blocks enables attackers to spoof network state or inject arbitrary transactions without authorization. Enforcing signature verification at deserialization boundaries is mandatory.
Race Condition: Concurrent access to a shared static instance of the AutoSeededRandomPool by multiple threads causes thread safety issues and predictable PRNG states. Utilizing thread_local storage is required to ensure secure cryptographic seed generation.