خاص طور پر تیار کی گئی غیر معیاری ٹرانزیکشنز Bitcoin Core نوڈ کو ہر بار چند سیکنڈ مصروف رکھ سکتی تھیں اور بھیجنے والا ڈس کنیکٹ بھی نہ ہوتا، یوں حملہ آور بلاکس کی ترسیل میں تاخیر ڈال سکتا تھا۔ Low درجے کی CVE-2025-46598 کی رپورٹ Antoine Poinsot نے دی؛ v30.0 میں بدترین صورت کا ویلیڈیشن وقت گھٹا کر اس کا اثر کم کیا گیا۔
1GB سے بڑے بلاک 32 بٹ Bitcoin Core نوڈز پر سائز کی جانچ اوور فلو کر کے ڈسک پر لکھتے وقت کریش کرا سکتے تھے، مگر صرف compact block کی صورت میں اور اسی نوڈ پر جس میں -maxmempool کی حد 3GB سے اوپر ہو اور اس میں 1GB ٹرانزیکشنز موجود ہوں۔ Low درجے کی CVE-2025-46597 Pieter Wuille نے ڈھونڈی؛ 29.1 اور 30.0 میں 32 بٹ سسٹمز پر -maxmempool کی حد باندھ کر اسے بند کیا گیا۔
کم از کم فیس ریٹ کی ڈیفالٹ حدیں Bitcoin Core 28.3 میں نیچے آ گئیں: -blockmintxfee اب 1 satoshi فی kvB، جبکہ -minrelaytxfee اور -incrementalrelayfee 100 satoshi فی kvB ہیں۔ والٹ کے فیس ریٹ نہیں بدلے، اور نئے ڈیفالٹ نیٹ ورک میں پھیلنے تک سستی ٹرانزیکشنز کا پھیلاؤ رک سکتا ہے۔ onion inbound کنکشنز پر اب whitelist اجازتیں لاگو نہیں ہوتیں (#33395)۔
FillBlock کو Bitcoin Core 29.2 میں P2P کی دو اصلاحات ملیں: witness mutation کی جانچ (#32646) اور کال سے پہلے خالی ہیڈر کی جانچ (#33296)۔ ری آرگ پر TRUC چیکس اب لاگو نہیں ہوتے (#33504)، اور getblock اور getblockheader ٹپ کا target واپس نہیں کرتے (#33446)۔
OP_RETURN کی حدیں Bitcoin Core 30.0 میں عملاً ختم ہو گئیں: -datacarriersize کا ڈیفالٹ 100,000 ہے اور ایک ٹرانزیکشن میں کئی ڈیٹا آؤٹ پٹس آ سکتے ہیں، اگرچہ -datacarriersize=83 پرانی حد واپس لے آتا ہے۔ ڈیفالٹ ریلے فیس ریٹ گر کر 0.1 satoshi فی vB ہو گئے، معیاری ٹرانزیکشن میں legacy دستخطی آپریشنز کی حد 2500 ہے، اور نئی bitcoin کمانڈ موجودہ executables کو ایک جگہ سمیٹتی ہے۔
ڈسک پر بلا شرط لاگنگ کی رفتار Bitcoin Core 29.1 میں ہر سورس لوکیشن کے لیے 1MiB فی گھنٹہ تک محدود ہو گئی (#32604)، اور معیاری ٹرانزیکشن میں ممکنہ طور پر چلنے والے legacy دستخطی آپریشنز زیادہ سے زیادہ 2500 ہو سکتے ہیں۔ ڈیفالٹ ریلے فیس ریٹ 100 satoshi فی kvB پر آ گئے، جبکہ 32 بٹ بلڈز میں -maxmempool کی حد 500MB اور -dbcache کی 1GiB ہے۔
Bitcoin Core 28.2 کی آدھی سے کچھ زیادہ تبدیلیاں بلڈ سے متعلق ہیں۔ Guix اب macOS ایپ بنڈل کو notarize کرتا ہے اور macOS اور Windows کی تمام بائنریز پر کوڈ سائننگ کرتا ہے (#31407)، جبکہ depends میں NetBSD پر libevent (#31500) اور cmake کے تحت freetype (#32693) کی کمپائل کی خرابیاں دور ہوئیں۔
Bitcoin Core کے اکتیس معاونین نے خط پر دستخط کر کے کہا ہے کہ جن ٹرانزیکشنز کی پائیدار معاشی طلب ہو اور جو باقاعدگی سے بلاکس تک پہنچتی ہوں، انہیں نوڈ سافٹ ویئر ریلے کرنے سے انکار نہ کرے، کیونکہ صارفین اور مائنرز ایسے فلٹرز کا توڑ نکال سکتے ہیں۔ ان کا زور ہے کہ اس کا مطلب غیر مالی ڈیٹا کے استعمال کی تائید نہیں، اور کون سا سافٹ ویئر اور پالیسی چلانی ہے، یہ فیصلہ صرف صارف کا ہے۔
برسوں تک مسلسل addr اسپام Bitcoin Core کے address manager میں 32 بٹ شناخت کنندہ کو اوور فلو کر کے نوڈ کریش کر سکتا تھا؛ یہ اسی حملے کا باقی حصہ ہے جسے v22.0 میں ریٹ لمٹنگ نے پہلے کند کیا تھا۔ ورژن 29.0 میں 64 بٹ شناخت کنندہ آ گیا اور Low درجے کی CVE-2024-52919 بند ہو گئی۔ خامی Eugene Siegel نے ڈھونڈی اور تبدیلی Martin Zumsande نے کی۔
UPnP کی سپورٹ Bitcoin Core 29.0 سے ختم ہو گئی؛ -natpmp اب libnatpmp کے بجائے بلٹ اِن PCP اور NAT-PMP نفاذ پر چلتا ہے۔ ephemeral dust نئی پالیسی کے طور پر آئی ہے، بلاک ویٹ کی دوہری ریزرویشن کی درستی کے ساتھ -blockreservedweight شامل ہوا، اور نوڈ orphan کا اعلان کرنے والے ہر پیئر سے اس کے گمشدہ parents مانگتے ہیں۔ ورژن 26.x اور پرانے Maintenance End پر پہنچ گئے ہیں۔
-port سیٹ ہو تو Bitcoin Core 28.1 ڈیفالٹ onion لسننگ پورٹ کو mainnet پر 8334 رکھنے کے بجائے اسی پورٹ میں ایک جمع کر کے طے کرتا ہے، چنانچہ ایک مشین پر کئی نوڈ پھر سے اسٹارٹ اپ ٹکراؤ کے بغیر ساتھ چل سکتے ہیں۔ torrc میں ہاتھ سے لکھی HiddenServicePort لائنیں بدلنی پڑ سکتی ہیں۔ DecodeExtKey میں خفیہ ڈیٹا بھی اب صاف کر دیا جاتا ہے (#31166)۔
بلاک کا اعلان کر کے رک جانے والا پیئر Bitcoin Core نوڈ کو کہیں اور جانے سے پہلے 10 منٹ تک انتظار کرا سکتا تھا، اور حملہ آور یہ چال دہرا سکتے تھے۔ Medium درجے کی CVE-2024-52922 کی رپورٹ اور درستی دونوں Greg Sanders کے ہاتھوں ہوئیں؛ v25.1 اور v26.0 میں نوڈ 3 تک high-bandwidth compact block پیئرز سے فوراً بلاک مانگ سکتا ہے، جس سے مسئلہ کم ہو گیا۔
سیلف کنیکٹ کی شناخت میں race condition کو Bitcoin Core کے ورژن 27.2 نے بند کر دیا (#30394) اور FillPSBT کی وہ کالز درست کیں جو غلطی سے complete=true لوٹاتی تھیں (#30357)۔ load block تھریڈ اور scheduler اب مختلف ترتیب سے بند ہوتے ہیں (#30435)، اور کوڈ miniupnpc 2.2.8 اور GCC 15 کے ساتھ بلڈ ہو جاتا ہے۔
v25.0 سے پہلے کے Bitcoin Core میں ایک پیئر کے میوٹیٹڈ بلاک اسی بلاک کا اعلان کرنے والے دوسرے پیئرز کی ڈاؤن لوڈ اسٹیٹ مٹا سکتے تھے، اور نوڈ زیرِ تعمیر compact block بھول جاتا۔ مسئلہ Suhas Daftuar کی نظر میں آیا، اور #27608 ہر پیئر کو اس کی اپنی اسٹیٹ تک محدود کرتا ہے۔ CVE-2024-52921 کا درجہ Medium ہے۔
v25.0 سے پہلے کے Bitcoin Core نوڈز ایک ہی بلاک کے لیے دوبارہ blocktxn پیغام پا کر ریموٹ طور پر کریش ہو سکتے تھے، کیونکہ اس سے وہ assertion ٹوٹتی تھی کہ FillBlock صرف ایک بار چلے گا۔ short-id ٹکراؤ کی ضرورت بھی نہیں تھی: بلاک کے merkle root میں نہ پائی جانے والی ٹرانزیکشنز شامل کر کے اسی راستے تک پہنچا جا سکتا تھا۔ High شدت کی یہ خامی، CVE-2024-35202، Niklas Gögge نے ڈھونڈی اور ٹھیک کی۔
مئی 2023 کے آغاز میں نیٹ ورک کی سرگرمی اچانک بڑھی اور جاسوس نوڈز نے حالات بگاڑے تو بلاک اور ٹرانزیکشنز کی ترسیل سست پڑ گئی، کیونکہ بھاری inv-to-send سیٹس کی چھانٹی P2P تھریڈ کا تقریباً سارا وقت کھا رہی تھی۔ Medium درجے کا یہ مسئلہ Bitcoin Core v25.0 میں #27610 سے حل ہوا، جو میم پول سے جا چکی ٹرانزیکشنز جلد نکالتا ہے اور سیٹ بڑھنے پر اسے تیزی سے خالی کرتا ہے۔
Testnet4 (BIP94) Bitcoin Core 28.0 میں آ گیا ہے، اور ساتھ 1-parent-1-child جوڑوں کے لیے محدود package relay، BIP 431 کے تحت معیاری TRUC ٹرانزیکشنز اور نئی Pay To Anchor آؤٹ پٹ قسم بھی۔ -mempoolfullrbf کا ڈیفالٹ اب 1 ہے، اور 27.0 میں متروک ہونے کے بعد libbitcoinconsensus ہٹا دیا گیا ہے۔
کم ڈفیکلٹی ہیڈرز کی چینز v24.0.1 سے پہلے کے Bitcoin Core نوڈز کو ریموٹ طور پر کریش کر سکتی تھیں، اور ایک تیار شدہ چین نیٹ ورک کے کسی بھی نوڈ کے خلاف دوبارہ چلائی جا سکتی تھی۔ #25717 کے بعد نوڈ چین ذخیرہ کرنے سے پہلے دیکھتا ہے کہ اس میں کافی کام موجود ہے، اور معلوم حملوں کے خلاف چیک پوائنٹس پر انحصار بھی ختم ہو گیا۔ شدت: High۔
addr پیغامات کی بوچھاڑ Bitcoin Core نوڈ کو کریش کر سکتی تھی: addrman میں 2^32 اندراجات 32 بٹ ID کاؤنٹر کو اوور فلو کر کے assertion توڑ دیتے تھے۔ High شدت کا یہ بگ Eugene Siegel نے 2021 میں رپورٹ کیا، اور v22.0 میں Pieter Wuille کی درستی شامل ہے۔
مقامی نیٹ ورک پر UPnP ڈیوائس بن کر حملہ آور Bitcoin Core نوڈ کو پھولے ہوئے M-SEARCH جوابات بھیجتا رہتا، یہاں تک کہ میموری ختم ہو جائے۔ خطرے میں صرف -miniupnp کے ساتھ شروع کیے گئے نوڈ تھے، کیونکہ لائبریری ویسے ڈیفالٹ طور پر بند رہتی ہے۔ Low شدت کا یہ بگ v22.0 میں ٹھیک ہوا۔