← На главную

Psylo закрыла три утечки в WebKit, обходящие прокси на iOS и macOS

04.08.2026 23:31 · hackernews

Разработчики браузера Psylo нашли три утечки в WebKit, которые обходят прокси-настройки на iOS и macOS. Прокси-браузеры вроде Tor или Psylo используют API WKWebsiteDataStore.proxyConfigurations: весь веб-трафик должен идти через прокси, и сайты видят только IP прокси. Но три функции WebKit отправляют запросы напрямую с устройства, раскрывая реальный IP или DNS-сервер пользователя.

Первая — DNS prefetching. Сайт вставляет тег <link rel="dns-prefetch">, и WebKit резолвит имя через обычный DNS устройства, игнорируя прокси. Так сайт может узнать настоящий DNS-сервер пользователя, отправив уникальные hostnames и посмотрев, кто их спрашивает. Функция стала доступна в iOS 26.0.

Вторая — WebAuthn Related Origin Requests. Это механизм для passkey, когда один ключ работает на нескольких доменах. При запросе такого ключа операционная система сама, минуя прокси и даже сетевой стек браузера, скачивает https://<rpId>/.well-known/webauthn. Причём для этого не нужно действие пользователя — достаточно указать mediation: "conditional". Сервер видит реальный IP устройства. Фича появилась в iOS 18.0.

Третья — WebTransport. Это альтернатива WebSocket на базе HTTP/3 и QUIC. Вызов new WebTransport(url) открывает QUIC-соединение напрямую с устройства, без оглядки на прокси. Real IP уходит серверу. WebTransport включили в iOS 26.4.

Все три утечки затрагивают и Apple iCloud Private Relay — он проксирует только обычный трафик Safari, а эти запросы идут в обход. А вот VPN не уязвимы: они туннелируют весь трафик на уровне системы.

Разработчики Psylo связались с Tor Project и создателями Onion Browser. В версии Psylo 1.3.1 они заблокировали dns-prefetch, отключили по умолчанию WebTransport и WebAuthn. Правда, для честных сайтов, которым реально нужны passkey или WebTransport, фичи можно включить обратно через переключатели для каждого silo (изолированного профиля) — явный opt-in остаётся на усмотрение пользователя.

Читать оригинал →