CVE-2023-39910, known as Milk Sad, affects Libbitcoin Explorer (bx) versions 3.0.0 through 3.6.0. The bx seed wallet-entropy generation path used the non-cryptographic mt19937 Mersenne Twister PRNG, seeded from a 32-bit value derived from system time. Consequently, the number of reachable entropy outputs is limited to at most 2^32 states regardless of whether the user requests 128-, 192-, or 256-bit output. An attacker can enumerate candidate PRNG seeds, reproduce candidate BIP39 mnemonics and BIP32-derived keys, and compare derived public addresses with public blockchain activity to identify vulnerable wallets. This is an entropy-generation failure; it does not break secp256k1, ECDSA, BIP39, or BIP32.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
3 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (4 hidden).
Repository contains a single C++ program and a README. The main file, NOWYGENERATOR202220223.cpp, is a standalone local key generator targeting two cryptocurrency-related weak-RNG vulnerabilities: CVE-2023-39910 (Milk Sad / libbitcoin-explorer) and CVE-2022-40769 (Profanity). It does not exploit a live service or communicate over the network. Instead, it brute-generates candidate private keys from a user-supplied 32-bit seed range and writes them to text files. Code structure is simple: generate_priv_libbitcoin(seed) uses std::mt19937 seeded with a 32-bit integer and concatenates eight 32-bit outputs into a 32-byte private key; generate_priv_profanity(seed) reproduces a linear congruential generator using state = state * 1103515245 + 12345 and similarly emits 32 bytes; format_time() formats elapsed runtime; main() parses optional CLI arguments [start_seed] [end_seed] [output.txt], iterates through the seed range twice, and writes results to libbitcoin_<output> and profanity_<output> while printing progress statistics. Primary capability is bulk generation of candidate private keys for vulnerable wallets, intended for downstream processing by external tools such as the referenced AllChainScanner. The exploit is therefore operational but local-only: it provides a usable payload (candidate keys) rather than direct compromise logic. No network endpoints, C2, or remote exploitation routines are present. Fingerprintable artifacts are limited to local output filenames and documentation URLs. The README heavily emphasizes cryptocurrency wallet recovery/scanning workflows and explains how generated keys can be converted into addresses and checked for balances using external software.
This repository is a comprehensive cryptanalytic framework targeting the 'Milk Sad' vulnerability (CVE-2023-39910) in Libbitcoin Explorer 3.x, which used a weak MT19937 PRNG for wallet generation. The codebase includes both command-line (main.py) and Jupyter notebook (BitScanPro_Bitcoin_Transaction.ipynb, Bitcoin_Message.ipynb) interfaces for recovering private keys from vulnerable wallets and for constructing and signing Bitcoin transactions with custom OP_RETURN data. Supporting modules (secp256k1.py, sighash.py, sign.py, signing.py) implement Bitcoin cryptography, transaction creation, and signing logic. The pushtx.py script allows broadcasting crafted transactions to the Bitcoin network via public endpoints. The setup.py script downloads additional cryptographic tools. The repository is operational and can be used to exploit the Milk Sad vulnerability, recover private keys, and create transactions embedding arbitrary data. Multiple endpoints for transaction broadcasting and blockchain interaction are hardcoded. The exploit is not part of a larger framework but is a standalone, operational toolset for cryptanalytic attacks on affected Bitcoin wallets.
This repository provides a C++ tool (with both CLI and Qt GUI) to generate BIP-39 24-word mnemonic phrases using a timestamp-based entropy method, specifically to exploit the 'Milk Sad' vulnerability (CVE-2023-39910). The vulnerability affected some cryptocurrency wallets that used only a 32-bit Unix timestamp as entropy for seed phrase generation, making the resulting mnemonics highly predictable and brute-forceable. The tool supports multiple languages (12 BIP-39 wordlists) and can generate mnemonics for a single timestamp, a date range, or the entire 32-bit timestamp space. Output is written to language-specific text files, and progress can be saved and resumed. The codebase is organized into CLI and GUI source directories, with wordlists and test vectors included. The exploit's purpose is to enumerate all possible vulnerable mnemonics, enabling attackers (or auditors) to recover private keys for affected wallets. No network endpoints are present; all attack vectors are local, relying on brute-force computation and analysis of generated mnemonic files.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
18 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A weak-entropy wallet-generation vulnerability in Libbitcoin Explorer's bx seed command. MT19937 was seeded from a 32-bit clock-derived value, limiting purported 128-, 192-, or 256-bit wallet entropy to at most 2^32 possible states and enabling recovery by enumerating candidate seeds and checking derived public blockchain addresses.
Historical weak-entropy vulnerability in Libbitcoin Explorer, referenced as an analogy to demonstrate that predictable PRNG seed material—not ECDSA or blockchain cryptography—is the root cause of wallet-key compromise.
A weak-randomness vulnerability in the Libbitcoin Explorer command-line tool that enabled attackers to crack wallet seed phrases and drain funds.
A Libbitcoin Explorer entropy-generation vulnerability, also referred to as the Milk Sad attack, that allowed mass recovery of Bitcoin wallet private keys due to weak entropy.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.