从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 触发条件:由kref decrement触发,destroy_workqueue()可能被调用来自毁其自身的workqueue。 - 非法情况:这会导致工作项在销毁自己的工作队列时调用destroy_workqueue(),从而破坏工作队列的合法性。 - 解决方法:通过添加一个模块全局工作队列,用于独占使用引发问题的工作项。其他工作项继续在每个设备的工作队列上排队,以确保性能。 2. 报告者: - syzbot+91dbdfecdd3287734d8e@syzkaller.appspotmail.com 3. CC: - stable@kernel.org 4. 链接: - https://lore.kernel.org/lkml/00000000000000ab25a061e1dfe9f/google.com/ - https://lore.kernel.org/r/20240801121126.60183-1-eli.billauer@gmail.com 5. 作者和提交者: - 作者:Eli Billauer - 提交者:Greg Kroah-Hartman 6. 代码更改: - 文件:drivers/char/xillybus/xillyusb.c - 更改内容: - 添加了模块全局工作队列的定义和使用。 - 修改了workqueue_struct的定义。 - 更新了workqueue的分配和销毁逻辑。 7. 上下文: - 上下文行:-50,6 +50,7 - 上下文内容:与工作队列相关的代码片段。 这些信息表明,该漏洞与工作队列的管理有关,特别是当工作项在销毁自己的工作队列时可能会触发非法情况。通过添加模块全局工作队列,可以解决这个问题,确保工作队列的合法性。