CVE标识符 | CVE-2023-21036 |
---|---|
发现日期 | 2023年1月2日 |
补丁发布日期 | 2023年1月24日 |
发现者 | Simon Aarons和David Buchanan |
受影响软件 | Markup、Windows 10的截图和草图,以及Windows 11的截图工具 |
aCropalypse(CVE 2023-21036)是Markup中的一个漏洞。Markup是随着Android Pie的发布而在Google Pixel手机中引入的屏幕截图编辑工具。该漏洞由安全研究人员Simon Aarons和David Buchanan于2023年发现,该漏洞允许攻击者查看裁剪掉的截图部分。在aCropalypse被发现后,一个类似的零日漏洞[1]亦被发现,影响到Windows 10的截图和草图和Windows 11的截图工具。
更多信息:Android Pie |
2018年,Google为Android Pie新增了一款名为Markup的图片编辑器。该编辑器允许用户进行截图,并可利用钢笔和荧光笔的功能在屏幕上对截图进行修改。[2]用户可将这些截图保存到Google相册或本地。[3]
aCropalypse是由两位安全研究员Simon Aarons和David Buchanan发现的。[4]该漏洞早前由Lucy Phipps于2022年8月11日提交到Google问题追踪系统。[5]据报道,当Aarons注意到一张黑底白字的截图文件大小异常大时,他发现了这个错误。[6]有人建立了一个网站,用户可通过在此提交裁剪后或修改过的图像,来对图像进行还原。[7]
aCropalypse利用了Markup中的一个漏洞。在Markup保存被裁剪的截图后,修改过的图像会保存到与原始图像相同的位置。[8]此图像使用ParcelFileDescriptor.open()
函数创建,调用ParcelFileDescriptor.parseMode()
函数时使用了“w”
参数,相反传递代表“写入”操作的“wt”
参数可截断原始图像。[9]即使图像未用ParcelFileDescriptor.parseMode()
,而是ParcelFileDescriptor.open()
创建,前者会将一个参数转换为后者的掩码。[10]有类似的函数,如C语言的fopen
函数,该函数中的“w”
参数会将文件截断为零长度。[11]“w”
参数在Android 10的一项未记录变更中开始使用。[12][4]
Markup使用了一个叫zlib的压缩库,利用基于LZ77与LZ78的无损数据压缩算法Deflate,其中每一位数据引用最后一位数据,动态霍夫曼编码在块的开始处定义霍夫曼树。Markup截图的霍夫曼树每隔16千字节重新指定一次。对aCropalypse漏洞的初步利用预计算了8个字节串构成的列表,并将其传递到zlib,以便从指定的比特偏移量开始。除此之外,漏洞的初步利用以32千字节大小的ASCII字符“X”作为图像流的前缀。[9]
修补aCropalypse的内部补丁已于2023年1月24日完成,[4]但在之后的2023年3月13日才推出安全补丁[8]进行修复。[13]某些像Twitter之类的社交媒体网站会自动截断上传的图像,而也有一些网站不会这样做。Discord于1月17日更新中修复了该漏洞。[7]
aCropalypse会影响到运行Android 10的Google Pixel手机[14]受影响的范围包括含有信用卡号码及其他私人照片的图像。[15]该漏洞被披露时,未获取更新的Pixel 3、Pixel 3a、Pixel 4、Pixel 5、Pixel 6和Pixel 6a设备处于风险之中。[16]
3月21日,软件工程师Chris Blume指出,Windows 11的截图工具保存的文件大小等同于裁剪后的图像。[17]据此,Buchanan发现Windows 11的截图工具和Windows 10的截图和草图容易受相同漏洞的影响,而Windows 10的Win32版截图工具不受此影响。[18]