কোনো মাইনার Bitcoin Core-এর undo ফাইলকে 4 GiB ছাড়িয়ে নিয়ে গেলে 32-বিট পজিশন ঘুরে গিয়ে ডেটা নষ্ট হতো, আর উপযুক্ত reorg ঘটলে নোড বন্ধ হয়ে যেত; Windows ও 32-বিট সিস্টেমে reorg ছাড়াই 2 GiB-তে বিপত্তি ঘটে। নিম্ন মাত্রার CVE-2026-117346-এর জন্য লাগবে নেটওয়ার্কের প্রায় এক মাসের সব ব্লক। 32.1, 31.2, 30.4 ও 29.5 সংস্করণে 64-বিট সিস্টেম সুরক্ষিত হলেও 32-বিট নোড ও FAT32-তে রাখা ব্লক ঝুঁকিতেই থাকছে।
সকেট এক্সেপশন পর্যবেক্ষণে poll() ও select() এখন একই আচরণ করে Bitcoin Core 29.5-এ (#36665), আর সেন্ড পজ করা পিয়ারের জন্য টাইমআউট বাধ্যতামূলক (#36667)। flatfile পজিশন গেছে 64-বিট পূর্ণসংখ্যায় (#36669), সিড থেকে পাওয়া ঠিকানায় নোড v2transport ধরে নেয়, আর একটি DNS সিড বাদ পড়েছে।
BIP 31 পিং সমর্থন না করার ভান করে ক্ষতিকর পিয়ার 20 মিনিটের সংযোগ বিচ্ছিন্নতা এড়াতে এবং ধীরে ডেটা পড়তে পারত। এতে নোডের সেন্ড কিউ প্রতি ঘণ্টায় প্রতিটি ইনবাউন্ড পিয়ারের জন্য সর্বোচ্চ 2MB এবং আউটবাউন্ড পিয়ারের জন্য 5MB করে ফুলত। মাঝারি মাত্রার CVE-2026-117349 Bitcoin Core 32.1, 31.2, 30.4 ও 29.5-এ #36667 দিয়ে সারানো হয়েছে; -blocksonly নোডের ঝুঁকি ছিল অনেক কম।
সংযুক্ত কোনো পিয়ার TCP urgent data পাঠিয়ে Windows, macOS ও BSD নোড ক্র্যাশ করাতে পারত: select() ব্যাকএন্ডে থামানো রিডের ফাঁক গলে এই ডেটা ঢুকে সীমাহীনভাবে মেমরি দখল করত (CVE-2026-117350)। poll() ব্যবহারকারী Linux নোডে সমস্যা নেই। মাঝারি মাত্রার বাগটি Project Loupe-এর আওতায় LLM স্ক্যানে ধরা পড়ে; সমাধান আছে Bitcoin Core 32.1, 31.2, 30.4 ও 29.5-এ।
BIP 323 মেনে Bitcoin Core 30.4 আর BIP 9-এর 5 থেকে 28 নম্বর বিটকে সফট ফর্কের সংকেত ধরে না, তাই এসব বিট বসানো ব্লকে অজানা ডিপ্লয়মেন্টের সতর্কবার্তাও আসে না (#34779)। নেটওয়ার্ক অংশে সেন্ড পজ করা পিয়ারের ওপর টাইমআউট কার্যকর হয়েছে (#36667), আর flatfile পজিশনে এখন 64-বিট পূর্ণসংখ্যা (#36669)।
প্রাইভেট ব্রডকাস্টে এবার ঊর্ধ্বসীমা বসাল Bitcoin Core 31.2: নেটওয়ার্ক থেকে এখনও প্রতিধ্বনি না পাওয়া লেনদেনের সারি 10,000-এ থেমে যায়, ভরে গেলে নতুন জমা নেয় না, আর abortprivatebroadcast দিয়ে তা খালি করার দায় কলারের (#35406)। BIP 323 অনুযায়ী ভার্সন বিট 5 থেকে 28 আর সফট ফর্কের সংকেত হিসেবে গণ্য হয় না।
প্রেরকের IP ঠিকানা ফাঁসের ঝুঁকি আর নেই Bitcoin Core 32.1-এর প্রাইভেট ব্রডকাস্টে: আগে v2 সংযোগ ব্যর্থ হলে v1-এ আবার চেষ্টাটি Tor এড়িয়ে সরাসরি চলে যেতে পারত। -maxconnections-এর ডিফল্ট 125 থেকে বেড়ে হয়েছে 200, আর বহির্গামী লেনদেন রিলের গতি এখন পিয়ার ধরে নয়, একটি সার্বিক ব্যাকলগ দিয়ে নিয়ন্ত্রিত।
স্বাভাবিক চলার সময়ও ডিস্কে ভারী রিড-রাইটের কারণ ছিল একটি বাগ, যা সারানো হলো Bitcoin Core 29.4-এ: chainstate ডেটাবেস বারবার নিজের বড় অংশ নতুন করে লিখত। এখন LevelDB-র seek compaction বন্ধ, আর chainstate কম্প্যাক্ট হয় নিয়মিত বিরতিতে (#35465)।
chainstate বারবার ডিস্কে লেখার ঝামেলা মিটল Bitcoin Core 30.3-এ। একত্রিত বাম্প ফি না পেলে feebumper-এর ক্র্যাশ (#34870) এবং অঙ্ককে বুলিয়ান হিসেবে হিসাব করা কয়েন সিলেকশনের বাগও (#34888) সারানো হয়েছে। PSBT-তে pubnonce ও আংশিক সই ডিসিরিয়ালাইজ করার সময় এখন MuSig2 পাবকি যাচাই হয় (#34219)।
-privatebroadcast-এর IP ঠিকানা ফাঁস বন্ধ করল Bitcoin Core 31.1: কিছু সংযোগ চালু থাকা প্রাইভেসি নেটওয়ার্কের বদলে ক্লিয়ারনেটে বেরিয়ে যাচ্ছিল। অতিরিক্ত ডিস্ক ব্যবহারের পেছনে থাকা chainstate পুনর্লিখনও থেমেছে, আর MuSig2 কী অ্যাগ্রিগেশনে খালি পাবকি তালিকা এখন প্রত্যাখ্যাত হয় (#35316)।
v2 হ্যান্ডশেক ব্যর্থ হলে Bitcoin Core 31.0-এ প্রেরকের IP ঠিকানা বেরিয়ে যেতে পারে: -privatebroadcast চালু থাকলে v1-এ পুনরায় চেষ্টা Tor প্রক্সি এড়িয়ে সরাসরি পিয়ারে যায়। সম্ভাব্য কারণ, ক্ষতিকর পিয়ার ইচ্ছে করে হ্যান্ডশেক বন্ধ করে দিলে। 31.1 আসার আগ পর্যন্ত ব্যবহারকারীরা ফিচারটি বন্ধ রাখতে, -v2transport=0 দিতে বা IPv4/IPv6 বহির্গামী সংযোগ Tor দিয়ে চালাতে পারেন।
0.14.0-এর পর থেকে 29.0-এর আগের Bitcoin Core সংস্করণগুলো সাজানো অবৈধ ব্লক যাচাইয়ের সময় মুক্ত করা মেমরি পড়ে ক্র্যাশ করতে পারত। CVE-2024-52911-এর মাত্রা উচ্চ, যদিও হামলাকারীকে টিপে বৈধ proof-of-work খরচ করতে হয়, আর দূর থেকে কোড চালানোর সম্ভাবনা কম বলে ধরা হচ্ছে। Cory Fields সমস্যাটি জানান; সমাধান রয়েছে 29.0-এ।
পুরোনো নকশার জায়গা নিল ক্লাস্টার মেমপুল, Bitcoin Core 31.0-এ: অ্যানসেস্টর ও ডিসেন্ডেন্ট সীমা উঠে গিয়ে ক্লাস্টার বাঁধা হয়েছে 64 লেনদেন ও 101 kB-তে, CPFP carveout বাদ। অন্তত 4096 MiB RAM-এর মেশিনে -dbcache-এর ডিফল্ট বেড়ে 1024 MiB, আর নতুন -privatebroadcast অপশন sendrawtransaction-এর সম্প্রচার পাঠায় শুধু Tor বা I2P দিয়ে।
নামহীন ওয়ালেট নিয়ে দুটি বিপত্তি সারাল Bitcoin Core 28.4: লিগ্যাসি ওয়ালেট মাইগ্রেশন (#34156) এবং createfromdump, যা ব্যর্থ হলে ওয়ালেট ডিরেক্টরিই মুছে দিত (#34215)। chainparams থেকে একটি DNS সিডও বাদ পড়েছে (#33723)।
কনসেনসাসে অবৈধ লেনদেন পাঠানো পিয়ারকে আর শাস্তি দেয় না Bitcoin Core 29.3 (#33050)। লিগ্যাসি, P2SH ও segwit v0 স্ক্রিপ্টের যাচাইয়ে যোগ হয়েছে ইনপুটপ্রতি sighash মিডস্টেট ক্যাশ (#32473), Script চেক আবার না চালিয়েই ধরা পড়ে witness stripping (#33105), আর মাইনারের addPackageTxs থেকে দূর হয়েছে একটি unsigned integer ওভারফ্লো (#33475)।
নামহীন লিগ্যাসি ওয়ালেটের মাইগ্রেশন ব্যর্থতা দূর হলো Bitcoin Core 30.2-এ (#34156), আর এমন ওয়ালেটে ব্যর্থ হলে createfromdump ওয়ালেট ডিরেক্টরি মুছে দেয় না (#34215)। IPC-র wait কলের সময় Ctrl-C চাপলেও এখন আটকে যায় না (#33511)।
বিরল পরিস্থিতিতে Bitcoin Core 30.0 বা 30.1-এ wallet.dat মাইগ্রেশন ব্যর্থ হলে ওয়ালেট ডিরেক্টরির সব ফাইল মুছে যেতে পারে, ঝুঁকিতে পড়ে তহবিল। ডেভেলপাররা ওই বাইনারি সরিয়ে নিয়েছেন এবং 30.2 না আসা পর্যন্ত GUI বা RPC দিয়ে মাইগ্রেট না করতে বলছেন। বাগটির জন্য দরকার মাইগ্রেট বা লোড হতে ব্যর্থ একটি ডিফল্ট, নামহীন wallet.dat; অন্য ব্যবহারকারীরা আক্রান্ত নন।
অ্যানসেস্টর আছে এমন আনকনফার্মড TRUC কয়েন আর বিবেচনায় নেয় না Bitcoin Core 30.1-এর ওয়ালেট (#33528)। IPC অংশে অপশনের জন্য -m আর্গুমেন্ট লাগে না (#33229), বার্তা লগিংয়ের বাড়তি খরচ কমেছে (#33517), আর চলমান waitNext কল বাতিল করা যায় (#33676)।
সাজানো নন-স্ট্যান্ডার্ড লেনদেন প্রতিটিতে 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 সীমিত করে পথটি বন্ধ হয়েছে।