Баг с тайваньским флагом, приводящий к сбою iPhone, исправлен в iOS

Баг с тайваньским флагом, приводящий к сбою iPhone, исправлен в iOS

Баг с тайваньским флагом, приводящий к сбою iPhone, исправлен в iOS

Apple устранила баг в iOS, который приводил к сбою в работе iPhone, когда пользователи устройства набирали слово «Taiwan» или получали сообщение, содержащее emoji с флагом Китайской Республики.

Проблема могла проявляться в приложениях для обмена сообщениями: iMessage, Facebook Messenger и WhatsApp.

Известный эксперт в области кибербезопасности Патрик Уордл обнаружил, что этот баг затрагивает устройства с определенными конфигурациями, присущими определенным регионам.

Уордл поставил задачу проанализировать код, чтобы определить причину появления этой программной ошибки. Задача оказалось непростой, так как Apple известна тем, что максимально закрывает свой код от чужих глаз.

Исследователь обнаружил, что причина бага крылась в коде, который классифицировал сообщения на основе emojis, которые в них находились. Также специалист пришел к выводу, что ошибка проявляла себя, если на устройстве были китайские языковые настройки.

«Идея следующая — если переключить регион с США на Китай, затем обратно на США, то баг, судя по всему, пропадает. Если бы Apple не пыталась потакать китайскому правительству, не было бы никакой ошибки», — пишет эксперт.

Недостаток получил идентификатор CVE-2018-4290 и был исправлен в iOS 11.4.1.

Вчера мы писали, что ранее преподносимая как новая функция безопасности, USB Restricted Mode все же имеет свои недостатки. Одним из таких недостатков поделились исследователи — оказалось, что есть способ свести к минимуму весь защитный потенциал нововведения в последней стабильной версии iOS 11.4.1.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru