从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 漏洞类型:路径遍历(path traversal)。 - 影响范围:内核中的某些代码路径允许通过设备或半特权用户空间传递的字符串组件构造出包含“..”路径组件的固件文件名。 2. 漏洞影响: - 代码路径:lpfc_sli4_request_firmware_update()、nfp_net_fw_find() 和 module_flash_fw_schedule()。 - 潜在危害:这些路径可能允许通过构造出包含“..”路径组件的固件文件名来执行路径遍历攻击。 3. 修复措施: - 修复方法:在固件文件名中拒绝包含“..”路径组件。 - 修复代码:在drivers/base/firmware_loader/main.c文件中添加了新的代码来检查固件文件名是否包含“..”路径组件,并在发现包含时拒绝加载。 4. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 5. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 6. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 7. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 8. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 9. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 10. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 11. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 12. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 13. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 14. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 15. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 16. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 17. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 18. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 19. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 20. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 21. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 22. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 23. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 24. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 25. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 26. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 27. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 28. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 29. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 30. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 31. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 32. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 33. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 34. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 35. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 36. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 37. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 38. 修复范围: - 文件位置:drivers/base/firmware_loader/main.c。 - 代码行数:增加了30行代码。 39. 修复细节: - 函数:fw_log_firmware_info()。 - 检查条件:使用strcmp和strchr函数检查字符串是否包含“..”路径组件。 - 错误处理:如果发现包含“..”路径组件,返回EINVAL错误。 40. 修复范围: - 文件位置:drivers/base/firmware_loader