ACropalypse

aCropalypse（CVE 2023-21036）是Markup中的一个漏洞。Markup是随着Android Pie的发布而在Google Pixel手机中引入的屏幕截图编辑工具。该漏洞由安全研究人员Simon Aarons和David Buchanan于2023年发现，该漏洞允许攻击者查看裁剪掉的截图部分。在aCropalypse被发现后，一个类似的零日漏洞亦被发现，影响到Windows 10的截图和草图和Windows 11的截图工具。 2018年，Google为Android Pie新增了一款名为Markup的图片编辑器。该编辑器允许用户进行截图，并可利用钢笔和荧光笔的功能在屏幕上对截图进行修改。用户可将这些截图保存到Google相册或本地。 aCropalypse是由两位安全研究员Simon Aarons和David Buchanan发现的。该漏洞早前由Lucy Phipps于2022年8月11日提交到Google问题追踪系统。据报道，当Aarons注意到一张黑底白字的截图文件大小异常大时，他发现了这个错误。有人建立了一个网站，用户可通过在此提交裁剪后或修改过的图像，来对图像进行还原。 aCropalypse利用了Markup中的一个漏洞。在Markup保存被裁剪的截图后，修改过的图像会保存到与原始图像相同的位置。此图像使用ParcelFileDescriptor.open()函数创建，调用ParcelFileDescriptor.parseMode()函数时使用了“w”参数，相反传递代表“写入”操作的“wt”参数可截断原始图像。即使图像未用ParcelFileDescriptor.parseMode()，而是ParcelFileDescriptor.open()创建，前者会将一个参数转换为后者的掩码。有类似的函数，如C语言的fopen函数，该函数中的“w”参数会将文件截断为零长度。“w”参数在Android 10的一项未记录变更中开始使用。 Markup使用了一个叫zlib的压缩库，利用基于LZ77与LZ78的无损数据压缩算法Deflate，其中每一位数据引用最后一位数据，动态霍夫曼编码在块的开始处定义霍夫曼树。Markup截图的霍夫曼树每隔16千字节重新指定一次。对aCropalypse漏洞的初步利用预计算了8个字节串构成的列表，并将其传递到zlib，以便从指定的比特偏移量开始。除此之外，漏洞的初步利用以32千字节大小的ASCII字符“X”作为图像流的前缀。 修补aCropalypse的内部补丁已于2023年1月24日完成，但在之后的2023年3月13日才推出安全补丁进行修复。某些像Twitter之类的社交媒体网站会自动截断上传的图像，而也有一些网站不会这样做。Discord于1月17日更新中修复了该漏洞。 aCropalypse会影响到运行Android 10的Google Pixel手机受影响的范围包括含有信用卡号码及其他私人照片的图像。该漏洞被披露时，未获取更新的Pixel 3、Pixel 3a、Pixel 4、Pixel 5、Pixel 6和Pixel 6a设备处于风险之中。 3月21日，软件工程师Chris Blume指出，Windows 11的截图工具保存的文件大小等同于裁剪后的图像。据此，Buchanan发现Windows 11的截图工具和Windows 10的截图和草图容易受相同漏洞的影响，而Windows 10的Win32版截图工具不受此影响。 Cunningham, Andrew. "Acropalypse" Android screenshot bug turns into a 0-day Windows vulnerability vulnerability. Ars Technica. 2023-03-22 [2023-03-23]. （原始内容存档于2023-06-04）.  Gao, Richard. Android P feature spotlight: Screenshot editing is now native with 'Markup'. Android Police. 2018-03-07 [2023-03-21]. （原始内容存档于2023-04-13）.  Maring, Joe. How to take screenshots in Android Pie. Android Central. 2018-08-08 [2023-03-21]. （原始内容存档于2023-04-12）.  Wang, Jules. Severe exploit could expose sensitive data on Pixel screenshots previously cropped. Android Police. 2023-03-18 [2023-03-21]. （原始内容存档于2023-04-10）.  builtin screenshot cropping tool writes junk data. 2022-08-11 [2023-03-29]. （原始内容存档于2023-06-01）.  Hay Newman, Lily. Some Photo-Cropping Apps Are Exposing Your Secrets. Wired. 2023-03-22 [2023-03-22]. （原始内容存档于2023-06-06）.  Roth, Emma. Google Pixel exploit reverses edited parts of screenshots. The Verge. 2023-03-19 [2023-03-21]. （原始内容存档于2023-05-20）.  Li, Abner. Pixel Markup vulnerability lets some screenshots be un-redacted, un-cropped; fixed by March update. 9to5Google. 2023-03-18 [2023-03-21]. （原始内容存档于2023-05-02）.  Buchanan, David. Exploiting aCropalypse: Recovering Truncated PNGs. 2023-03-18 [2023-03-21]. （原始内容存档于2023-05-01）.  Vigliarolo, Brandon. Privacy fail: Pictures cropped, redacted by Google Pixel phones can be recovered. The Register. 2023-03-20 [2023-03-21]. （原始内容存档于2023-05-26）.  fopen(3). Linux manual. March 22, 2021 [2023-03-21]. （原始内容存档于2023-03-25）.  Amadeo, Ron. Google Pixel bug lets you "uncrop" the last four years of screenshots. Ars Technica. 2023-03-20 [2023-03-21]. （原始内容存档于2023-05-22）.  Li, Abner. March Pixel Feature Drop with Android 13 QPR2 now rolling out. 9to5Google. 2023-03-13 [2023-03-21]. （原始内容存档于2023-04-09）.  Hager, Ryne. Android 10 is rolling out to Pixels starting today. Android Police. 2019-09-03 [2023-03-21]. （原始内容存档于2023-04-11）.  Cuthbertson, Anthony. Google 'acropalypse' lets users see hidden parts of images. The Independent. 2023-03-20 [2023-03-21]. （原始内容存档于2023-06-03）.  Bonifacic, Igor. Google Pixel vulnerability allows bad actors to undo Markup screenshot edits and redactions. Engadget. 2023-03-21 [2023-03-21]. （原始内容存档于2023-04-12）.  Abrams, Lawrence. Windows 11 Snipping Tool privacy bug exposes cropped image content. Bleeping Computer. 2023-03-21 [2023-03-21]. （原始内容存档于2023-05-22）.  Clark, Mitchell. Oops, Windows' screenshot tool may be saving stuff you cropped out, too. The Verge. 2023-03-21 [2023-03-21]. （原始内容存档于2023-05-10）.