CVE-2024-38616

wifi: carl9170: re-fix fortified-memset warning

State
Published
Severity
8.2 High
Published
Jun 19, 2024
Updated
May 11, 2026
Reserved
Jun 18, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

wifi: carl9170: re-fix fortified-memset warning

The carl9170_tx_release() function sometimes triggers a fortified-memset warning 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 seems this 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 original cast 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 get struct_group() to do this either. Using two separate memset() calls on the two members does address the warning though.

Scores

CVSSScoreVectorSource
3.18.2 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:HCISA-ADP

Weaknesses

  • CWE-400 Uncontrolled Resource Consumption

Affected Products

ProductVersions
LinuxLinux
  • fb5f6a0e8063b7a84d6d44ef353846ccd7708d2e to before 13857683126e8a6492af73c74d702835f7a2175bAffected
  • fb5f6a0e8063b7a84d6d44ef353846ccd7708d2e to before 87586467098281f04fa93e59fe3a516b954bddc4Affected
  • fb5f6a0e8063b7a84d6d44ef353846ccd7708d2e to before 0c38c9c460bb8ce8d6f6cf316e0d71a70983ec83Affected
  • fb5f6a0e8063b7a84d6d44ef353846ccd7708d2e to before 042a39bb8e0812466327a5102606e88a5a4f8c02Affected
  • fb5f6a0e8063b7a84d6d44ef353846ccd7708d2e to before 066afafc10c9476ee36c47c9062527a17e763901Affected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.93 through 6.1.*Not affected
  • 6.6.33 through 6.6.*Not affected
  • 6.8.12 through 6.8.*Not affected
  • 6.9.3 through 6.9.*Not affected
  • 6.10 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.