The query manager selects only 'd' closest peers rather than 'k' closest peers for routing table initialization. This drastically weakens the robustness of disjoint lookup paths, making the DHT vulnerable to eclipse attacks. Ensure the routing table closest peers matches the expected bucket size 'k' before routing them into separate initial paths.
Rule Explorer
Search the public rule index by CVE, GHSA, CWE, language, framework, author, or rule slug. Filter by language, framework, severity, confidence, license, and validation status.
- Public rules
- 2917
- Downloads
- 3.6M
- Verified
- 2917
- Authors
- 2
Filtering out all empty arrays from workflow connections incorrectly shifts subsequent connection indices. In multi-output nodes, this corrupts the mapping between array indices and output ports, potentially bypassing logical conditions or redirecting data. To maintain index stability, only strip trailing empty arrays (e.g., using a while loop with .pop()).
Filtering out empty nested sub-arrays removes intermediate items and shifts all subsequent indices. In structures where array indices provide semantic mapping (e.g., node output logic branches or protocol ports), this incorrectly recompiles connection maps, causing data corruption or authentication bypasses. If array indices represent immutable identifiers,
The parser passes an incorrect expected item count of 5 to SkipTheRest, instead of 3. This causes trailing extension fields to be ignored and bypasses underlying structural validation in MessagePackReader.
Aggressive empty element filtering on a position-dependent (sparse) sub-array shifts subsequent indices, corrupting mappings that rely on index position. Remove trailing empty structures carefully instead of indiscriminately filtering intermediate empty arrays.
Constructing a field element type directly from a raw integer without modulo reduction or bounds checking can lead to unreduced elements. When these elements are compared for equality or used in some cryptographic arithmetic, they may yield incorrect results or allow validation bypasses. Mathematically equivalent elements will have distinct binary representa
A logic flaw causes incorrect rounding when both the intermediate product and divisor are negative. The logic assumes a negative intermediate implies a negative result, neglecting the sign of the divisor. Attackers could trigger this path to cause precision deviations and break expected math boundaries.
A BigNumber or similar structure applies a bitwise mask to an array of components based on length, but fails to account for the state where length becomes 0. This corrupts the instance invariants, causing operations like `isZero()` to fail and resulting in infinite loops.
Child VM gas limit is not bounded by the parent's actual remaining gas. This allows a gas accounting discrepancy leading to unexpected OOG exceptions that can pollute or corrupt virtual machine states.
The QuoRem implementation performs division via truncation (using `Div`) instead of symmetric rounding. This mathematically violates the Euclidean domain property, leading to infinite loops in Half-GCD operations (Denial of Service). Additionally, mutating the receiver `z` early before completion can lead to aliasing bugs if it points to the same memory as t
Checking for interval overlap by verifying if the endpoints of one interval fall within another interval is logically flawed. This fails to detect overlap when the first interval completely encapsulates the second. Use the mutually exclusive bounds check instead: '!(end1 < start2 || end2 < start1)'.
Unconditionally clearing the 'Restored' flag of a register in CalleeSavedInfo during local block optimization can lead to miscompilation. CalleeSavedInfo represents global function state; modifying it locally without verifying all function paths (e.g., other return blocks) may cause registers to be left unrestored, leading to control-flow errors or crashes.