Skip to content

Instantly share code, notes, and snippets.

Litecoin MWEB Security Vulnerabilities: Analysis and Fixes

Summary

During the summer of 2026, Litecoin developers fixed a number of security issues identified through AI-assisted review. Two of the most serious vulnerabilities were reported separately by security researchers: a remote crash reported by DeltaXV on July 14, and an inflation vulnerability reported by Alex “Scalar” Sol on September 5. Fortunately, neither vulnerability was exploited.

Both affected Litecoin’s optional privacy feature, MWEB (Mimblewimble Extension Blocks). DeltaXV found that malformed transaction data could crash a node during wallet scanning. Scalar found that a specially constructed block could change meaning when saved and reloaded from disk, bypassing checks that prevent inflation.

Both vulnerabilities have been fixed. DeltaXV’s fix shipped publicly in Litecoin Core v0.21.5.6. Scalar’s fix was included in the privately coordinated v0.21.5.7 security release and then in the public v0.21.5.8 release. There is no known

@DavidBurkett
DavidBurkett / OneSidedMWTxs.md
Last active December 17, 2020 01:38
Offline Transactions in Mimblewimble

Offline Transactions in Mimblewimble

Mimblewimble is a blockchain protocol that improves on bitcoin's privacy and scalability by using pedersen commitments, schnorr signatures, and a novel technique called 'cut-through'. These benefits have come at a steep cost. Building transactions have thus far required interaction between the sender and receiver to create the outputs and collectively sign the transaction. We present here a method of achieving one-sided transactions while minimizing the impact on the scalability and privacy of mimblewimble.

Current Protocol

Like bitcoin, Grin uses a UTXO model. Transactions are created by including inputs to spend, creating new outputs of equal or lesser value, and signing and building rangeproofs to verify ownership of the inputs.

Unlike bitcoin, Grin uses confidential transactions, so the inputs and outputs are pedersen commitments (r*G + v*H). Instead of the signatures being added to the inputs, there is only one signature per transaction, which is part of the

Keybase proof

I hereby claim:

  • I am davidburkett on github.
  • I am dburkett (https://keybase.io/dburkett) on keybase.
  • I have a public key ASDFwghN5V8rZvmw_7XRtGH9uc4TglKr_U1WkUqDVVfy0wo

To claim this, I am signing this object:

@DavidBurkett
DavidBurkett / Genesis_Signer.py
Last active October 22, 2024 05:41
Create valid signatures using genesis block.
import math
import ecdsa
import ecdsa.ellipticcurve as EC
#
# Compute the inverse mod p using the extend
# euclidian algorithm.
# See O. Forster, Algorithmische Zahlentheorie
#
def inv_mod_p(x, p):