Хакер #305. Многошаговые SQL-инъекции
С релизом версии 91.0.4472.167 инженеры Google исправили серьезную ошибку в Chrome OS, из-за которой люди не могли пользоваться своими устройствами (после установки версии 91.0.4472.165, вышедшей ранее на этой неделе). Из-за опечатки, допущенной в коде, пользователи не могли войти в систему, а девайсы, работающие под управлением Chrome OS, оказались заблокированы.
Проблема усугублялась тем, что Chrome OS загружает обновления автоматически и переходит на новую версию после перезагрузки устройства. То есть после перезагрузки люди с удивлением обнаруживали, что девайс их заблокирован.
Журналисты Android Police рассказывают, что им удалось обнаружить корень этой проблемы. Так, издание ссылается на комментарий пользователя elitist_ferret, найденный на Reddit. Тот писал, что баг, очевидно, сводился к банальной односимвольной опечатке.
Строка кода в Cryptohome VaultKeyset, где хранятся ключи шифрования пользователей, должна была выглядеть так: if (key_data_.has_value() && !key_data_->label().empty()) {
. Но вместо «&&» в коде использовался только один амперсанд.
В итоге Chrome OS не проверяла пароли пользователей, сопоставляя их с сохраненными ключами, и даже корректно введенные пароли возвращались с сообщением об ошибке: «К сожалению, ваш пароль не может быть верифицирован».
Пользователям, пострадавшим от обновления 91.0.4472.165, рекомендуют дождаться повторного обновления устройства (на распространение исправленной версии потребуется «несколько дней»), или очистить девайс принудительно, то есть стереть с него все локальные данные, и войти в систему. Так как Chrome OS в основном работает в облаке, очистка устройства сопряжена с меньшим количество проблем, чем в обычных ОС, но некоторые пользователи все равно жалуются на потерю данных.