
batchOverflow बग का फिक्स https://medium.com/@peckshield/alert-new-batchoverflow-bug-in-multiple-erc20-smart-contracts-cve-2018-10299-511067db6536
batchOverflow बग के लिए एक फिक्स जिसे PeckShield टीम ने खोजा।
मूल कॉन्ट्रैक्ट केवल यह जाँच करता था कि प्रेषक के पास कुल राशि (इनपुट मान x पतों की संख्या) का भुगतान करने के लिए पर्याप्त जो भी है। यदि ओवरफ्लो हुआ तो यह राशि शून्य हो सकती है, जो line 12 पर परीक्षण को पास करने देगा।

एक संभावित फिक्स यह है कि एक और परीक्षण जोड़ा जाए जो जाँचता है कि प्रेषक की शेष राशि में से राशि घटाने पर जो आता है वह उसकी वर्तमान शेष राशि से कम है या नहीं। यदि ओवरफ्लो हुआ तो शेष राशियाँ समान होंगी, जिससे यह एक अमान्य लेनदेन बन जाएगा। हालाँकि, यह अभी भी समस्या को ठीक नहीं करेगा। यदि हमलावर के पास थोड़ी शेष राशि है, मान लीजिए 10 जो भी, तो हमलावर _value को इस तरह ओवरफ्लो करा सकता है कि वह उनकी वर्तमान शेष राशि से कम किसी राशि पर पहुँच जाए और इस गेट को पार कर ले।
बेहतर फिक्स यह होगा कि केवल यह जाँच की जाए कि स्थानांतरित की गई कुल राशि उस _value के बराबर या उससे अधिक है या नहीं। यदि ओवरफ्लो हुआ तो यह परीक्षण पास नहीं होगा। किसी हमलावर को इस गेट के पार जाने के लिए उस जादुई संख्या / 20 का न्यूनतम मान चाहिए होगा, जो अभी भी बहुत बड़ी राशि है और संभवतः बिना किसी अन्य बग का शोषण किए प्राप्त करना असंभव है।
सुनिश्चित करें कि आपके पास truffle स्थापित है और अपने प्रोजेक्ट के रूट से truffle test कमांड चलाएँ। यह कुछ इस प्रकार दिखना चाहिए।
