不过在报告提交一个月后,小哥收到了Android安全团队的一份邮件:
Android安全团队认为,这个问题另一位外部研究人员之前已经报告过了。
对此小哥认为,这份回邮的言外之意就是,最高十万美金的奖励他一分钱都拿不到。
时间又过了一个月,小哥收到安全团队的邮件,对方称漏洞还在修复中……
又又过了一个月,九月谷歌发布了新的补丁,但这个Bug依旧没有修复……
不过小哥也不是轻言放弃的人,他直接来到谷歌办公室,用谷歌Pixel手机演示了一下这个漏洞。
而后他给安全团队定了个漏洞修复期限:10月15日之前。而对方的回复也很干脆:10月份这个Bug修不好!
在拉扯一番后,小哥和谷歌建立了联系,能够实时得到漏洞修复的反馈。
谷歌方也确定了修复工作的具体时间:11月份进行,现在这个漏洞已于11月5日谷歌的安全更新中被解决。
值得一提的是,关于提交漏洞的奖励,小哥最终也拿到了7万美金,不过谷歌对此还做出了一番解释,用小哥的原话来说,就是:
尽管我的报告是重复的,但正是因为我的报告,他们才开始着手修复。正因为如此,他们决定破例一次,并奖励给我70000美元。
小哥和谷歌的完整对话链接附在文末了,感兴趣的伙伴可以自行查看。(手动狗头)
究竟为什么会出现这样的漏洞?现在,谷歌的安卓工程师们终于把这个漏洞给补上了。
然而让小哥惊讶的是,bug修复远不止他想象的“一行代码补丁”那么简单。
从提交的修改情况来看,光是要改动的文件数量,就达到12个:
所以这个漏洞究竟是怎么出现的?
简单来说,Android系统中有一个叫做“安全屏幕”(security screen)的概念,其中包含两种东西,一种是PIN、指纹、密码等各种直接解锁密保的屏幕操作,另一种是SIM PIN和SIM PUK等各种解锁手机锁定状态的操作。
这些操作被放在一个栈(stack)中。
正常解锁谷歌手机时,直接用PIN、指纹或密码都可以,但不能超过3次,否则就会被锁定。
但如果忘记密码,手机(在输入3次错误密码后)被强制锁定了,同时SIM PIN条目可见,它就会被放置在其他屏幕解锁操作之上,用来让你解除手机的锁定状态。