• CVE-2024-38616

发布时间: 2024年7月6日

修改时间: 2024年8月30日

概要

In the Linux kernel, the following vulnerability has been resolved:wifi: carl9170: re-fix fortified-memset warningThe carl9170_tx_release() function sometimes triggers a fortified-memsetwarning in my randconfig builds:In file included from include/linux/string.h:254, from drivers/net/wireless/ath/carl9170/tx.c:40:In function fortify_memset_chk , inlined from carl9170_tx_release at drivers/net/wireless/ath/carl9170/tx.c:283:2, inlined from kref_put at include/linux/kref.h:65:3, inlined from carl9170_tx_put_skb at drivers/net/wireless/ath/carl9170/tx.c:342:9:include/linux/fortify-string.h:493:25: error: call to __write_overflow_field declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning] 493 | __write_overflow_field(p_size_field, size);Kees previously tried to avoid this by using memset_after(), but it seemsthis does not fully address the problem. I noticed that the memset_after()here is done on a different part of the union (status) than the originalcast was from (rate_driver_data), which may confuse the compiler.Unfortunately, the memset_after() trick does not work on driver_rates[]because that is part of an anonymous struct, and I could not getstruct_group() to do this either. Using two separate memset() callson the two members does address the warning though.

CVSS v3 指标

NVD openEuler
Confidentiality None None
Attack Vector Network Network
CVSS评分 8.2 8.2
Attack Complexity Low Low
Privileges Required None None
Scope Unchanged Unchanged
Integrity Low Low
User Interaction None None
Availability High High

安全公告

公告名 概要 发布时间
KylinSec-SA-2024-3047 In the Linux kernel, the following vulnerability has been resolved:wifi: carl9170: re-fix fortified-memset warningThe carl9170_tx_release() function sometimes triggers a fortified-memsetwarning in my randconfig builds:In file included from include/linux/string.h:254, from drivers/net/wireless/ath/carl9170/tx.c:40:In function fortify_memset_chk , inlined from carl9170_tx_release at drivers/net/wireless/ath/carl9170/tx.c:283:2, inlined from kref_put at include/linux/kref.h:65:3, inlined from carl9170_tx_put_skb at drivers/net/wireless/ath/carl9170/tx.c:342:9:include/linux/fortify-string.h:493:25: error: call to __write_overflow_field declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning] 493 | __write_overflow_field(p_size_field, size);Kees previously tried to avoid this by using memset_after(), but it seemsthis does not fully address the problem. I noticed that the memset_after()here is done on a different part of the union (status) than the originalcast was from (rate_driver_data), which may confuse the compiler.Unfortunately, the memset_after() trick does not work on driver_rates[]because that is part of an anonymous struct, and I could not getstruct_group() to do this either. Using two separate memset() callson the two members does address the warning though. 2024年7月6日

影响产品

产品 状态
KY3.4-5A kernel Unaffected
KY3.5.2 kernel Unaffected
V6 kernel Fixed