সাজানো নন-স্ট্যান্ডার্ড লেনদেন প্রতিটিতে Bitcoin Core নোডকে কয়েক সেকেন্ড করে ব্যস্ত রাখতে পারত, অথচ প্রেরকের সংযোগ কাটত না; এতে হামলাকারী ব্লক ছড়ানো পিছিয়ে দেওয়ার সুযোগ পেত। নিম্ন মাত্রার CVE-2025-46598 জানিয়েছিলেন Antoine Poinsot; v30.0-তে যাচাইয়ের সবচেয়ে খারাপ সময় কমিয়ে এর প্রভাব সামলানো হয়েছে।
1GB-র বেশি আকারের ব্লক 32-বিট Bitcoin Core নোডে একটি সাইজ চেক ওভারফ্লো করিয়ে ডিস্কে লেখার সময় ক্র্যাশ ঘটাতে পারত। তবে ব্লকটি হতে হবে কমপ্যাক্ট ব্লক, আর লক্ষ্য নোডে -maxmempool থাকতে হবে 3GB-র ওপরে, ভেতরে 1GB লেনদেনসহ। নিম্ন মাত্রার CVE-2025-46597 খুঁজে পান Pieter Wuille; 29.1 ও 30.0-তে 32-বিট সিস্টেমের -maxmempool সীমিত করে পথটি বন্ধ হয়েছে।
ন্যূনতম ফি-রেটের ডিফল্ট কমাল Bitcoin Core 28.3: -blockmintxfee প্রতি kvB-তে 1 satoshi, -minrelaytxfee ও -incrementalrelayfee প্রতি kvB-তে 100 satoshi। ওয়ালেটের ফি-রেট অপরিবর্তিত, আর নতুন ডিফল্ট নেটওয়ার্কে ব্যাপকভাবে চালু না হলে সস্তা লেনদেন পৌঁছাতে না-ও পারে। অনিয়ন ইনবাউন্ড সংযোগে হোয়াইটলিস্ট অনুমতিও আর খাটে না (#33395)।
FillBlock-এ দুটি P2P সংশোধন আনল Bitcoin Core 29.2: witness মিউটেশন চেক (#32646) এবং কলের আগে খালি হেডারের চেক (#33296)। reorg-এর সময় TRUC চেক আর বাধ্যতামূলক নয় (#33504), আর getblock ও getblockheader টিপের target ফেরত দেয় না (#33446)।
Bitcoin Core 28.2-এর পরিবর্তনের অর্ধেকের কিছু বেশি বিল্ড সংক্রান্ত। Guix এখন macOS অ্যাপ বান্ডল নোটারাইজ করে এবং macOS ও Windows-এর সব বাইনারিতে কোডসাইন করে (#31407); depends-এ NetBSD-তে libevent (#31500) ও cmake-এ freetype (#32693) কম্পাইলের সমস্যা মিটেছে।
নিয়মিত অর্থনৈতিক চাহিদা আছে এবং নির্ভরযোগ্যভাবে ব্লকে পৌঁছায়, এমন লেনদেন রিলে করতে নোড সফটওয়্যারের অস্বীকার করা উচিত নয়, এক চিঠিতে বলেছেন Bitcoin Core-এর 31 জন অবদানকারী; তাঁদের যুক্তি, ব্যবহারকারী ও মাইনাররা এমন ফিল্টার এড়িয়ে যেতে পারেন। তাঁরা জোর দিয়ে জানান, এর অর্থ অর্থনৈতিক নয় এমন ডেটা ব্যবহারে সমর্থন নয়, আর কোন সফটওয়্যার ও নীতি চলবে তা ঠিক করবেন কেবল ব্যবহারকারীই।
বছরের পর বছর অবিরাম addr স্প্যামে Bitcoin Core-এর অ্যাড্রেস ম্যানেজারের 32-বিট আইডি ওভারফ্লো হয়ে নোড ক্র্যাশ করতে পারত; v22.0-র রেট-লিমিট আগেই যে হামলাকে ভোঁতা করেছিল, এটি তারই অবশিষ্ট অংশ। 29.0 সংস্করণ 64-বিট আইডিতে গিয়ে নিম্ন মাত্রার CVE-2024-52919 বন্ধ করেছে। খুঁজে পান Eugene Siegel, পরিবর্তনটি করেন Martin Zumsande।
UPnP সমর্থন বিদায় নিল Bitcoin Core 29.0 থেকে; -natpmp এখন libnatpmp-এর বদলে চলে নিজস্ব PCP ও NAT-PMP বাস্তবায়নে। নতুন নীতি হিসেবে এসেছে ephemeral dust, ব্লক ওয়েট দুবার সংরক্ষণের সমাধানে যোগ হয়েছে -blockreservedweight, আর অরফান ঘোষণা করা প্রতিটি পিয়ারের কাছেই নোড এখন হারানো প্যারেন্ট চায়। 26.x ও পুরোনো সংস্করণ পৌঁছেছে Maintenance End-এ।
-port দেওয়া থাকলে Bitcoin Core 28.1 ডিফল্ট অনিয়ন লিসেনিং পোর্ট ঠিক করে ওই পোর্টের সঙ্গে এক যোগ করে, মেইননেটে আর 8334-এ বাঁধা থাকে না; ফলে স্টার্টআপে সংঘর্ষ ছাড়াই আবার একসঙ্গে একাধিক লোকাল নোড চালানো যায়। torrc-তে হাতে লেখা HiddenServicePort লাইন বদলাতে হতে পারে। DecodeExtKey-তে গোপন ডেটাও এখন মুছে ফেলা হয় (#31166)।
কোনো পিয়ার ব্লক ঘোষণা করে থেমে গেলে Bitcoin Core নোড অন্য কোথাও চেষ্টার আগে 10 মিনিট পর্যন্ত অপেক্ষা করতে পারত, আর হামলাকারীরা কৌশলটি বারবার চালাতে পারত। মাঝারি মাত্রার CVE-2024-52922 জানিয়েছেন ও সারিয়েছেন Greg Sanders; v25.1 ও v26.0-তে সর্বোচ্চ 3টি হাই-ব্যান্ডউইথ কমপ্যাক্ট ব্লক পিয়ারের কাছে সঙ্গে সঙ্গে ব্লক চাওয়া যায়, এতে প্রভাব কমেছে।
সেলফ-কানেক্ট শনাক্তকরণের একটি রেস কন্ডিশন বন্ধ করেছে Bitcoin Core-এর 27.2 সংস্করণ (#30394), আর ভুলভাবে complete=true ফেরানো FillPSBT কল ঠিক করেছে (#30357)। load block থ্রেড ও শিডিউলার এখন ভিন্ন ক্রমে বন্ধ হয় (#30435), আর কোড বিল্ড হয় miniupnpc 2.2.8 ও GCC 15-এ।
v25.0-র আগের Bitcoin Core-এ এক পিয়ারের মিউটেটেড ব্লক একই ব্লক ঘোষণা করা অন্য পিয়ারদের ডাউনলোড অবস্থা মুছে দিতে পারত, ফলে পুনর্গঠনের মাঝপথে থাকা কমপ্যাক্ট ব্লকের কথা নোড ভুলে যেত। সমস্যাটি নজরে আনেন Suhas Daftuar, আর #27608 প্রতিটি পিয়ারকে কেবল তার নিজের অবস্থায় সীমিত করেছে। CVE-2024-52921-এর মাত্রা মাঝারি।
একই ব্লকের জন্য দ্বিতীয়বার blocktxn বার্তা পাঠিয়ে v25.0-র আগের Bitcoin Core নোড দূর থেকে ক্র্যাশ করানো যেত: FillBlock একবারই চলবে বলে ধরে নেওয়া assertion ট্রিগার হতো। short-id সংঘর্ষেরও দরকার ছিল না, ব্লকের merkle root-এ নেই এমন লেনদেন যোগ করলেই ওই পথে পৌঁছানো যেত। উচ্চ মাত্রার বাগ CVE-2024-35202 খুঁজে পেয়ে সারান Niklas Gögge।
2023 সালের মে মাসের শুরুতে নেটওয়ার্কে হঠাৎ কর্মব্যস্ততা, তার ওপর স্পাই নোড; বিশাল inv-to-send সেট সাজাতেই P2P থ্রেডের প্রায় পুরো সময় চলে যাওয়ায় ব্লক ও লেনদেন ছড়ানো ধীর হয়ে পড়ে। মাঝারি মাত্রার সমস্যাটি Bitcoin Core v25.0-তে সারিয়েছে #27610: মেমপুল থেকে চলে যাওয়া লেনদেন দ্রুত বাদ পড়ে, আর সেট যত বড় হয় তত দ্রুত খালি হয়।
Testnet4 (BIP94) এল Bitcoin Core 28.0-এ, সঙ্গে 1-প্যারেন্ট-1-চাইল্ড জোড়ার জন্য সীমিত প্যাকেজ রিলে, BIP 431-এর অধীনে স্ট্যান্ডার্ড TRUC লেনদেন এবং নতুন Pay To Anchor আউটপুট টাইপ। -mempoolfullrbf-এর ডিফল্ট এখন 1, আর 27.0-তে অপ্রচলিত ঘোষিত libbitcoinconsensus বাদ পড়েছে।
v24.0.1-এর আগের Bitcoin Core নোড কম ডিফিকাল্টির হেডার চেইন দিয়ে দূর থেকে ক্র্যাশ করানো যেত, আর একটিমাত্র সাজানো চেইন নেটওয়ার্কের যেকোনো নোডের বিরুদ্ধে বারবার কাজে লাগত। #25717-এর সমাধানে নোড জমা করার আগে দেখে নেয় চেইনে যথেষ্ট কাজ আছে কি না, ফলে জানা হামলা ঠেকাতে চেকপয়েন্টের ওপর নির্ভরতাও ফুরিয়েছে। মাত্রা: উচ্চ।
addr বার্তার স্প্যামে Bitcoin Core নোড ক্র্যাশ করতে পারত: addrman-এ 2^32 বার সংযোজনে 32-বিট আইডি কাউন্টার ওভারফ্লো হয়ে assertion ট্রিগার হতো। উচ্চ মাত্রার বাগটি 2021 সালে জানান Eugene Siegel, আর v22.0-তে আছে Pieter Wuille-এর সমাধান।
লোকাল নেটওয়ার্কে UPnP ডিভাইস সেজে হামলাকারী বিশাল M-SEARCH উত্তর পাঠিয়ে Bitcoin Core নোডের মেমরি ফুরিয়ে দিতে পারত। ঝুঁকিতে ছিল শুধু -miniupnp দিয়ে চালু করা নোড, কারণ লাইব্রেরিটি ডিফল্টে বন্ধ থাকে। নিম্ন মাত্রার বাগটি সারানো হয় v22.0-তে।