IT之家 4 月 26 日消息,據IT之家多位網友投稿,一張二維碼圖片近日瘋傳全網,在微信中打開該圖片《或長按》將導致微信閃退,連續閃退多次微信會進入安全模式,賬號被強制登出。
根據 OpenCV 中國團隊的最新消息,這一 Bug 出現在了微信的掃碼引擎中《IT之家註:微信團隊於 2021 年在 OpenCV 開源了其掃碼引擎》。
根據 GitHub 用戶 Konano 和 GZTimeWalker 發現的內存讀寫 Bug,惡意制作的圖片會通過無效的內存訪問導致 wechat_qrcode 模塊崩潰。
問題發生在 DecodedBitStreamParser::decodeByteSegment中。
如下面的代碼所示,如果傳入參數 bits_是內容為空但長度非零的 ByteSegment,此時 bits.available 返回 0,隨後 count 被更新為 0,但 nBytes 沒有更新仍保持為非 0。
這會造成後面的 append 函數訪問空指針 readBytes 讀取 nBytes 數據,導致程序終止。
目前這一 Bug 已被用戶提交代碼修復,開源的速度還是很快的。
不過IT之家測試,微信方面還沒有跟進修復,目前掃碼仍會崩潰,或許要等到下個版本了。