Спойлеры Telegram уязвимы, их можно расшифровать 😳

Уязвимость спойлеров Telegram

Если вы когда-нибудь показывали экран Telegram и прятали что-то под спойлер, у меня плохие новости: скрытый текст могли увести.

В чём беда? Обычно спойлер показан анимированным шумом и раскрывается только по нажатию. Но в некоторых местах macOS-клиента Telegram это работает иначе: последнее сообщение в списке чатов и закреплённое сообщение используют запасной вариант, который превращает текст в символы псевдобрайля по одностороннему отображению. Код.

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

Кодировщик и декодировщик для демонстрации: https://github.com/rawrdcore/tg-hidden-messages-decoder

Огромное спасибо @dalmatrix за исследование и описание проблемы приватности: https://t.me/rawrdcore/74.

P.S. Если вы когда-нибудь клали под спойлер Telegram пароли или другие секреты — самое время их сменить! 😈