Возможность восстановления части скриншотов, кадрированных на смартфонах Pixel

В приложении Markup, применяемом в смартфонах Google Pixel для кадрирования и редактирования скриншотов, выявлена уязвимость (CVE-2023-21036), позволяющая частично восстановить обрезанную или отредактированную информацию. Проблема проявляется при редактировании в Markup PNG-изображений и вызвана тем, что при записи нового изменённого изображения данные накладываются на старый файл без его усечения, т.е. полученный после редактирования итоговый файл включает хвост исходного файла, в котором остаются старые сжатые данные.

Проблема оценивается как уязвимость, так как пользователь может опубликовать отредактированное изображение, предварительно вырезав конфиденциальные данные, но на деле эти данные остаются в файле, хотя и не видны при обычном просмотре. Для восстановления оставшихся данных запущен web-сервис acropalypse.app и опубликован пример Python-скрипта.


Уязвимость проявляется начиная с серии смартфонов Google Pixel 3, выпущенной в 2018 году, при использовании прошивок на базе Android 10 и более новых выпусков. Проблема устранена в мартовском обновлении Android-прошивки для смартфонов Pixel, которое охватывает только относительно свежие модели. Предполагается, что причиной возникновения проблемы является изменение метода ParcelFileDescriptor.parseMode(), в котором до выпуска платформы Android 10 флаг “w” (write) приводил к усечению файла при попытке записи в уже существующий файл, а начиная с выпуска Android 10 поведение было изменено и для усечения стало требоваться явное указание флага “wt” (write, truncate), а при указании “w” хвост после перезаписи не удалялся.

Release. Ссылка here.