Опубликованы подробности уязвимости в Bugzilla

Совсем недавно Mozilla сообщала о том, что некие хакеры сумели взломать аккаунт одного из привилегированных пользователей багтрекера Bugzilla и получили несанкционированный доступ к закрытым для широкой публики багам. А теперь исследователь Нитанель Рубин (Netanel Rubin), вообще обнаружил в Bugzilla критическую уязвимость, при помощи которой подобный трюк сможет провернуть даже школьник. Уязвимости подвержены Bugzilla версии 2.0, 4.2.14, 4.3.1, 4.4.9, 4.5.1 и 5.0.

Рубин рассказал, что уязвимость (CVE-2015-4499) уходит корнями к версии 2.0, и советует всем, кто работает с Bugzilla, обновиться до более новых и актуальных версий: 5.0.1, 4.4.10 или 4.2.15. Для данных версий проблема уже была устранена.

Баг основывается на том, что багтрекер раздает права пользователям, отталкиваясь от их email-адресов. Соль в том, что когда пользователь регистрирует аккаунт с ящика, домен которого относится к списку доверенных организаций, такому юзеру автоматически выдаются привилегированные права. В том числе, пользователь получает возможность видеть «конфиденциальные» уязвимости. К примеру, если зайти на bugzilla.mozilla.org и зарегистрировать аккаунт с ящика, расположенного на mozilla.com, такой пользователь сможет видеть даже скрытые от посторонних глаз баги.

Проблема заключается в том, что атакующий может зарегистрировать аккаунт с любого email-адреса, на любом домене, даже если на самом деле у хакера там нет никакого почтового ящика. Данные пользователя хранятся в БД в «tinytext», чей размер не должен превышать 255 байт. Если запись все же превышает 255 байт, данные искажаются, что и позволяет атакующим регистрировать аккаунты на собственную почту, тогда как багтрекер будет считать, что имеет дело с одним из доверенных адресов.

Осуществить атаку невероятно легко. При регистрации нового пользователя, Bugzilla отправляет на указанный юзером email ссылку подтверждения регистрации. Чтобы обмануть багтрекер, достаточно указать при регистрации почту вида xxxxx[…]xxx@mozilla.com.attackerdomain.com. Из-за лимита в 255 байт кусок attackerdomain.com пропадет из БД, он просто будет обрезан. При этом email с подтверждением регистрации придет на настоящую почту атакующего, будто ничего не случилось, позволив ему завершить процедуру регистрации. Рубин пишет, что баг срабатывает в том случае, если длина адреса превышает 127 символов.