Skip to content

Commit b0c1c1b

Browse files
docs: reorient analysis.md summary to security-researcher takeaways
Dropped the "A security-researcher reading" section title (the whole report is that) and replaced the dataset-characterization summary with actionable audit takeaways: fix record over CVE list, availability/consensus-centric threat profile, where severe bugs concentrate (crypto/EVM/consensus vs p2p/sync/RPC), severity = reachability x blast radius, localized fixes, and one-spec-many-implementations variant hunting; points to the audit field guide. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent c5d0496 commit b0c1c1b

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

docs/analysis.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,21 @@
44
`data/ethereum_vulns.parquet` by `scripts/make_figures.py`; n = 2,225 curated
55
security fixes across the eleven production Ethereum clients.*
66

7-
> **Summary.** The corpus is dominated by *silently patched* fixes (≈94% ship
8-
> with no advisory), its vulnerability profile is **availability- and
9-
> consensus-centric** rather than the memory-corruption profile of generic C/C++
10-
> datasets, its fixes are **localized** (43% single-file), its **severe classes are the ones most often patched silently**, and it spans **six
11-
> languages implementing one protocol** — a diversity axis absent from prior
12-
> vulnerability datasets. We interpret each finding against the
13-
> vulnerability-dataset literature (CVEfixes, BigVul, Devign, CrossVul,
14-
> DiverseVul, PrimeVul, and Croft et al.'s data-quality framework).
7+
> **Key takeaways.** For anyone auditing Ethereum clients (or other blockchain /
8+
> consensus systems), the data says: (1) the **historical fix record — not the
9+
> CVE list — is the real map**, since ~94% of fixes ship silently; (2) the threat
10+
> profile is **availability- and consensus-centric** (untrusted network input
11+
> crashing or diverging a node), not the memory-corruption profile of generic
12+
> C/C++ datasets; (3) severe bugs concentrate in a few regions — **crypto, the
13+
> EVM, and the consensus state-transition** for chain-split/value bugs, **p2p /
14+
> sync / RPC** for DoS — and severity tracks **reachability × blast radius** (led
15+
> by integer-overflow, consensus-divergence, resource-exhaustion); (4) fixes are
16+
> **localized** (43% single-file); and (5) because **one spec is implemented
17+
> eleven ways in six languages**, a fix in one client is a variant lead for the
18+
> other ten. The actionable version is the audit field guide
19+
> ([`security_report.md`](./security_report.md)); below, each finding is
20+
> cross-checked against the vulnerability-dataset literature (CVEfixes, BigVul,
21+
> Devign, CrossVul, DiverseVul, PrimeVul, Croft et al.).
1522
1623
## 1. Data and method
1724

@@ -112,7 +119,7 @@ across implementations. It is the diversity dimension DiverseVul and CrossVul
112119
argue reduces overfitting, obtained here **within a single well-specified
113120
domain**.
114121

115-
## 7. A security-researcher reading — what raises severity
122+
## 7. What raises severity
116123

117124
Severity here is the **Ethereum Foundation bug-bounty** grade (network-scale
118125
impact × single-packet/tx reachability), not CVSS. Only **6.4%** of rows were

0 commit comments

Comments
 (0)