
CVE-2023-40429: Приложение может получить доступ к конфиденциальным данным пользователя.
HostName — это пример приложения, демонстрирующий, как стороннее приложение может получить доступ к имени устройства пользователя без права com.apple.developer.device-information.user-assigned-device-name.
В iOS 16 Apple добавила право com.apple.developer.device-information.user-assigned-device-name, чтобы предотвратить идентификацию пользователя сторонними приложениями по имени устройства. Однако в процессе это сломало API ProcessInfo.processInfo.hostName, что позволило стороннему разработчику получить сетевое имя хоста устройства без соответствующего права. Хотя имя хоста не является точной копией 1:1 имени устройства, оно близко к нему. Например, моё устройство называется Astronaut Sloth, что даёт имя хоста Astronaut-Sloth.
Когда сторонний разработчик обращается к API ProcessInfo.processInfo.hostName, пользователю показывается запрос «Разрешить связываться с устройствами локальной сети». В iOS 15 API возвращал , если пользователь отклонял этот запрос. Однако в iOS 16 это также сломалось — имя устройства всегда возвращалось независимо от ввода пользователя.
ProcessInfo.processInfo.hostNamelocalhost