Nurseiit's blog

By Nurseiit, 7 years ago, In Russian

Добрый день, Codeforces!

Совсем недавно, во время раунда Tinkoff Challenge — Финал, случайным образом я наткнулся на очень интересный баг в системе. Интересный потомучто простым смертным контестантам с помощью него можно в каком-то роде почуствовать себя менеджерами!

Разумеется я сразу же написал Михаилу MikeMirzayanov. Но к большому сожалению, он еще не прочитал мое сообщение. И вот решил с вами поделиться ею.
Ну и конечно, делюсь не потомучто хочу чтобы пользовались, а наоборот чтобы побыстрее исправили его!

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

Во первых, в основной странице контеста в группе появились какие-то странные красные надписи, на которые я сразу не обратил внимания.

Лишь потом понял что система кларов раунда, и моего контеста конфликтуют — решил разобраться в чем дело и за одно повеселиться.
Первым делом, хотел сделать общее оповещение — не вышло, так как можно только по определенной задаче оповещать и у меня задач с раунда в списке не было. Думал что на этом все и лишь клары читать могу. Но нет! Оказалось что и публиковать/скрывать клары можно.


И вот результат:

А дальше, любопытный я сразу же хотел попробовать проверить ответить на клар — к сожалению или к счастью, как бы я тщательно не пытался кнопка отправить никак не нажималась.


За несколько секунд до конца контеста я вернул все как было, т.е. скрыл все клары которые я публиковал. И к моему удивлению, после контеста все вышесказанные баги/фичи остались как есть.
Как я и говорил в начале поста, я сразу решил что лучше написать Михаилу. А чтобы он мне поверил, я опубликовал единственный клар в котором говорится что кто-то кого-то подозрительно взламывает. На этом мои исследования подошли к концу, хотя все еще могу покопаться в том что осталось после раунда.

В завершении хочу лишь добавить что надеюсь эта уязвимость окажется последней в codeforces и данный факт послужит хорошим уроком для его сотрудников. Думаю когда проект приобретает значительные масштабы, то самое время побольше позаботиться о его информационной безопасности.

Всем добра!

Обновление: эта уязвимость больше не актуальна. По крайней мере мне не удалось воссоздать предыдущие обстоятельства. К моему удивлению не смотря на то что клар, мною ранее опубликованный, все еще виден, все вышесказанные возможности теперь не доступны.

Чтож, кажется это все же долгожданный конец моего поста.
Я искренне рад что мне посчастливилось еще больше улучшить нашу всеми любимую систему codeforces!

Всем удачи!

  • Vote: I like it
  • +171
  • Vote: I do not like it