AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 53 Cryptographic libraries

tx pool: only increment m_txpool_weight for newly added pool txs

Public commit record

What the developer wrote

Authored by j-berman

93/100 · Strong
tx pool: only increment m_txpool_weight for newly added pool txs

Otherwise we can end up double counting txs towards the weight,
which can over-state the pool weight. E.g. relay tx to node in
stem phase, add its weight to pool weight, then receive tx
from another node, then bump the pool weight again. That double
counts the tx towards the pool weight.

If the weight exceeds the max, the node will "prune" txs from the
pool. Thus, over-counting is probably a cause of, but perhaps
not the only cause of:
https://github.com/seraphis-migration/monero/issues/148
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This fix corrects a bookkeeping bug in Monero's transaction memory pool. The pool tracks its total weight (size) and prunes transactions when it thinks it is too full. Because the same transaction could be counted twice—once when relayed privately and again when received from another peer—the pool could believe it was over its weight limit and remove transactions prematurely. This could make the node behave differently from honest nodes, potentially affecting transaction relay and network consistency, but it does not directly steal funds or break cryptography.

Recommended action

Apply the patch. Monitor whether the linked issue (seraphis-migration/monero#148) is fully resolved, as the commit notes this may be one cause among several. Consider adding an invariant check that m_txpool_weight equals the sum of stored transaction weights.

Security signals we found

01

Denial-of-service-like symptom: premature eviction of valid mempool transactions

02

State inconsistency between local pool weight and actual stored transactions

03

P2P/network-layer interaction bug (stem relay + broadcast)

04

No cryptographic or consensus flaw identified in the diff

Risk score

Why this scored 53/100

Our methodology →
Potential impact 12/30
Exploitability 8/25
Stealth signal 10/15
Affected reach 12/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.