从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 触发条件:由kref decrement触发,导致destroy_workqueue()可能被调用,从而破坏其自身的workqueue。 - 非法情况:这会导致工作项在销毁自己的工作队列时调用destroy_workqueue(),从而破坏工作队列。 - 解决方法:通过添加一个模块全局工作队列,用于独占使用引发问题的工作项。其他工作项继续在设备特定的工作队列上排队,以确保性能。 2. 报告者: - 报告者是syzbot+91dbdfecdd3287734d8e@syzkaller.appspotmail.com。 3. 补救措施: - 补救措施:在xillybus模块中添加一个模块全局工作队列,用于独占使用引发问题的工作项。 - 补救措施:其他工作项继续在设备特定的工作队列上排队,以确保性能。 4. 补救措施的代码变更: - 代码变更:在drivers/char/xillybus/xillyusb.c文件中,添加了一个模块全局工作队列的定义和初始化。 - 代码变更:在workqueue_struct结构中添加了一个成员变量,用于存储模块全局工作队列的指针。 5. 补救措施的代码片段: 这些信息表明,通过在xillybus模块中添加一个模块全局工作队列,可以解决由kref decrement触发的非法情况,从而避免工作项在销毁自己的工作队列时调用destroy_workqueue(),从而破坏工作队列的问题。