Всем привет. Не так давно в Телеграме я нашла одну уязвимость, из-за которой я смогла прочесть сообщения в канале, из которого меня к тому времени уже выкинули. Когда я обратилась в Telegram Bug Bounty, мне ответили, что так и должно быть и все в порядке, хотя знакомый программист уверил меня, что это серьезная дыра в безопасности. Далее — конкретное описание того, что произошло и мои действия.
1. У администратора был закрытый канал с прикрепленным к нему публичным чатом. Я писала комментарии, и администратор отвечал мне с учетной записи чата, а не с канала. Эти ответы попадали в чат «Ответы», который есть у всех пользователей Телеграма.
2. Меня исключили из канала. Сначала в том канале не появлялись новые сообщения, потом он исчез из списка моих чатов. Но ответы из чата никуда не пропали — я просто не хотела их проверять.
3. Через некоторое время я зашла в чат «Ответы» и нажала на название чата под своим комментарием. Меня перенаправило в чат. В этом чате были не только комментарии, написанные после моего исключения, но и новые сообщения с канала, из которого меня исключили.
4. Я написала об этом владельцу канала. Только после того, как он сделал чат закрытым, я перестала видеть новые сообщения и комментарии - как и старые, конечно. Надо также сказать, что я не была участником чата и не подавала заявки о присоединении к нему, я просто писала в нем, потому что для меня тогда не было никакой разницы, так что причина не в том, что я была членом чата. Посты с закрытого канала висели там, даже если на них никто не отвечал.
Я решила написать об этом в службу Telegram Bug Bounty. Я не только написала, что произошло, но и полностью воспроизвела всю ситуацию по шагам и записала видео.
"Steps to reproduce:
[1] Step one: create a private channel
[2] Step two: create a public chat and attach it to channel
[3] Step three: invite the members via link. It may be your second account
[4] Step four: let member that will be excluded write comment
[5] Step five: answer them from the chat account
[6] Step six: exclude the member from the channel
[7] Step seven: write some posts after you exclude a member
[8] Step eight: login as those excluded member. Go into Replies chat
[9] Step nine: find an answer to your comment and click at the title in the colour bubble, those in format of "Member [icon of chat] Chat Name"
[10] Finally: look at the posts admin wrote after your exclusion that you weren't supposed to see."
Поддержка ответила мне:
"Thanks for reaching out but this is working as expected. A channel and a related discussion group are two separate entities. If a user is blocked in a channel, it does not mean that they are simultaneously blocked in the group. In this case, admins must manually remove them from both the channel and the group."
Что вы думаете об этом?