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之家测试,微信方面还没有跟进修复,目前扫码仍会崩溃,或许要等到下个版本了。