Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Attack Vectors Reference (1/4)

170 total attack vectors
171 total attack vectors

---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Attack Vectors Reference (2/4)

170 total attack vectors
171 total attack vectors

---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Attack Vectors Reference (3/4)

170 total attack vectors
171 total attack vectors

---

Expand Down
11 changes: 10 additions & 1 deletion solidity-auditor/references/attack-vectors/attack-vectors-4.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Attack Vectors Reference (4/4)

170 total attack vectors
171 total attack vectors

---

Expand Down Expand Up @@ -239,3 +239,12 @@

- **D:** Contract hashes raw calldata for uniqueness (`processedHashes[keccak256(msg.data)]`). Dynamic-type ABI encoding uses offset pointers — multiple distinct calldata layouts decode to identical values. Attacker bypasses dedup with semantically equivalent but bytewise-different calldata.
- **FP:** Uniqueness check hashes decoded parameters: `keccak256(abi.encode(decodedParams))`. Nonce-based replay protection. Only fixed-size types in signature (no encoding ambiguity).

---

---

**171. Short Address/Parameter Attack**

- **D:** External applications or exchanges pass short parameters (e.g., 19-byte address instead of 20) during contract interaction. The EVM pads the missing bytes with trailing zeros, potentially multiplying the subsequent `amount` parameter.
- **FP:** Input validation exists within the off-chain system, or contract explicitly verifies `msg.data.length` against the expected parameter size.