站长之家 - 业界 2021-11-17T17:37:34 +08:00

Google提议用“页表检查”功能应对Linux内核的内存崩坏问题

上周,Google 工程师发现了一个引用数据下溢(reference count underflow)问题,且一路可追溯到 2017 年的 Linux 4.14 内核。这个偶然发现的问题,会导致内存从一个进程泄露到另一个进程。为化解此类内存缺陷,Google 提出了一个全新的“页表检查”(Page Table Check)解决方案。

问题从 Linux 4.14 延续到 Linux 5.16(来自:Kernel.org)

除了 Google,近期还有不少合并提交修复了其它引用计数问题。但若“页表检查”功能推广开来,Linux 内核就会在页表条目插入 / 删除时,检查是否存在非法共享。

若检测到内存遭到破坏,内核也会以崩溃作为回应。此外需要注意的是,额外检查会导致一些性能影响、以及额外的内存资源开销。

基于此,“页表检查”功能不会在默认情况下开启。有需要的用户,需在手动激活 PAGE_TABLE_CHECK 的情况下进行构建。

然后在运行时,还要动用 page_table_check=on 这个内核启动参数。感兴趣的朋友,可移步至内核邮件公告列表(LKML)获取更多细节。

最后,作为单独补丁系列的一部分,我们还于本周二迎来了一组页面强化(hardening page _refcoount)。

参与其中的 Google 工程师,希望改进围绕引用计数代码的调试、并减少内存破坏等相关问题。

推荐关键词

24小时热搜

查看更多内容

大家正在看

聊聊共享自助咖啡的优点

共享单车得了牛皮癣