В бэкэнде MTP в gvfs была обнаружена ошибка. При чтении файла с подключенного устройства MTP функция do_read() в gvfsbackendmtp.c доверяет длине данных, возвращаемых устройством, не ограничивая ее исходным размером, запрошенным клиентом. Если вредоносное устройство MTP отвечает большим количеством байтов, чем запрошено, эта неограниченная длина передается непосредственно в memcpy().
Это приводит к тому, что операция читает память за пределами заданных границ. Это позволяет злоумышленнику, подключающему вредоносное устройство MTP, вызвать ошибку сегментации при чтении файла и привести к сбою процесса gvfsd-mtp, что приведет к отказу в обслуживании.
Показать оригинальное описание (EN)
A flaw was found in the MTP backend in gvfs. When reading a file from a mounted MTP device, do_read() in gvfsbackendmtp.c trusts the data length returned by the device without limiting it to the original size requested by the client. If a malicious MTP device responds with more bytes than requested, this unrestricted length is passed directly to memcpy(). This causes the operation to read memory outside the intended boundaries. This allows an attacker who plugs in a malicious MTP device to cause a segmentation fault when a file is read and crash the gvfsd-mtp process, resulting in a denial of service.
Характеристики атаки
Последствия
Строка CVSS v3.1