AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 25 Bitcoin

Don't persist inbound committed onions in prod

Public commit record

What the developer wrote

Authored by Valentine Wallace

68/100 · Adequate
Don't persist inbound committed onions in prod

A few PRs ago, we started persisting inbound committed HTLC onions in Channels.
These onions were persisted to lay groundwork for reconstructing the
ChannelManager's pending HTLC maps from them in a future version. However,
we've since discovered a different direction where we can instead reconstruct
these same maps using persistent monitor events, which may mean that we don't
need to persist these onions.

Since persisting a bunch of onions on every manager write is a big commitment
that we're not fully confident in yet, switch it off for now until we either
confirm the monitor events direction and can delete all this onion persisting
code OR realize that we definitely do need it.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit disables a feature that was temporarily storing extra routing data (onion packets) for every incoming payment in Lightning channels. The developers decided not to keep writing that data in production yet because they may not need it after all, and writing it on every save would be a large, uncertain commitment. It is a design rollback, not a fix for an active security bug.

Recommended action

No immediate security action required; treat as a normal feature rollback. Monitor future commits that re-enable RECONSTRUCT_HTLCS_FROM_CHANS_VERSION or remove the test-only onion persistence code entirely.

Security signals we found

01

Disables persistence of sensitive routing onion data in production

02

Prevents potential data-retention or state-bloat risk from persisting onions on every manager write

03

Changes forward-compatibility version constant from a concrete value to None, delaying automatic rejection of old/missing data

04

Keeps test-only code paths for future reconstruction logic

Risk score

Why this scored 25/100

Our methodology →
Potential impact 5/30
Exploitability 2/25
Stealth signal 3/15
Affected reach 4/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.