谷歌表示,它已经修复了一个重大的Chrome OS漏洞,该漏洞将用户锁定在其设备之外。
Chrome OS会自动下载更新,并在重启后切换到新版本,因此重启设备的用户会突然被锁定。在这个更新问题出现时,最常规的建议是不要重启。
公告说,一个新的版本91.0.4472.167正在推出,以解决这个问题,但它可能需要 "几天 "的时间来触及所有人。受不良更新影响的用户可以等待设备再次更新,或者对其设备进行"格式化"--意味着擦除所有本地数据--以获得登录。Chrome OS主要是基于云的,所以如果你不做一些运行难度大的事情,比如运行Linux应用程序,这个解决方案带来的不便比在其他操作系统上要少。但是,一些用户仍在抱怨数据丢失的问题。
ChromeOS是开源的,所以我们可以得到更多关于修复的细节,这个问题显然可以归结为一个单字的错字。谷歌在Chrome OS的CryptohomeVaultKeyset中弄错了一个条件语句,这是操作系统中保存用户加密密钥的部分。这一行应该是 "if (key_data_.has_value() && !key_data_->label().empty()) {",但是错误的更新使用了一个单引号,而不是"&&"--C++版本的 "AND "运算符--破坏了条件语句的后半部分。
听起来,由于这个错误,Chrome OS从来没有根据存储的密钥正确检查过用户密码,所以即使是正确的密码,也会有一条消息说:"对不起,你的密码无法被验证。"
Chrome OS的整个卖点是它的可靠性和稳定性,而像这样的错误更新会损害该操作系统。目前还不清楚像这样一个明显的问题是如何进入稳定发布渠道的。Chrome OS有三个测试渠道,在两个版本之间有数周的测试。不知何故,这个错误逃脱了整个过程。这个问题似乎也是一个单元测试或自动测试可以发现的问题--无法登录是非常明显的。
这个错误标志着这个月推送的第二个有缺陷的Chrome OS更新。7月初的一次更新使一些机型的CPU使用率激增,使其速度减慢。
原文链接:Google pushed a one-character typo to production, bricking Chrome OS devices | Ars Technica