In the Linux kernel, the following vulnerability has been resolved:
wifi: wilc1000: avoid buffer overflow in WID string configuration
Fix the following copy overflow warning identified by Smatch checker.
drivers/net/wireless/microchip/wilc1000/wlancfg.c:184 wilcwlanparseresponseframe() error: '_memcpy()' 'cfg->s[i]->str' copy overflow (512 vs 65537)
This patch introduces size check before accessing the memory buffer. The checks are base on the WID type of received data from the firmware. For WID string configuration, the size limit is determined by individual element size in 'struct wilccfgstrvals' that is maintained in 'len' field of 'struct wilccfg_str'.
[
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"192272987724621188587032314135669304799",
"3096871544077603838131133580568755896",
"57167245713490421917446915925497047439",
"123447476497720472257966752175987141387",
"317446491507132298277315582263118439420",
"295431493699747590890253818957597670076",
"200332098491383243548404101216252570327",
"53609913196163663466234630544657459904",
"218145649847258588491764398040511567894",
"41405911029498531585905568785719516006",
"308289042017929709234362216879411994897",
"29477058649894647593335612087882845165",
"53212624096253467392939997610003983594",
"277249507024545751170836353802608571407",
"296735671512801205899807700159457216529",
"78230981096906889488694412691229072855",
"51700262919835400818661312418821551579",
"236855639204601637226254564801479124817",
"112492885128031529255704768710786687293",
"122027880548280856296731056907757112249",
"338635715027284946192510813674274076733",
"47722954412281077972184358131447806241",
"305445162914552727921928109752228437748",
"86529263430116262023556515077327760004",
"210863697325564568953328563875980324985",
"71512261694260973317360639602257727658",
"245130860461879385097849712692637674389",
"291544181731331132521033901461573566166",
"301599283665158959549440879650464112835",
"126313589959495968534608643578761941977",
"154311911610357682051939239432269056647",
"299970153546455030861207775195215281201",
"304865229847626266613536898500603636047",
"166667943245284662394745356212073869203",
"100597344960011773141180656632317268923",
"29081931961268833606786784950965245133",
"252476402788918899484424910563476657556",
"273420364523301081788961131695833786907",
"180729135370410409384257160219276308788",
"107434221917751136181145137152505576152",
"174108966744717207868818676884263673209",
"286465337532345932698382397082827544218",
"129935868747583037202132643521284266257",
"85691403451761945712994817537469186130",
"128095499951847234825646010950335816884",
"5442375181804668495289400337671113766",
"84505874207057510535961224203773193061",
"327520656584893588977603577971203172089"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fe9e4d0c39311d0f97b024147a0d155333f388b5",
"signature_version": "v1",
"id": "CVE-2025-39952-19479695"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"52729713022903163691114484007988587396",
"311306171922651435453821786187043026459",
"99633118192286337796838005465710409213",
"119702650257396440959380411312753542333",
"23302768961411200988790391121160044231",
"170828764455206766174938600994357904225",
"19400927079811201732127506595781178594",
"229243886424842139551787234515045718895",
"5521898401551355422555494733546337566"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.h"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2203ef417044b10a8563ade6a17c74183745d72e",
"signature_version": "v1",
"id": "CVE-2025-39952-1d225029"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"192272987724621188587032314135669304799",
"3096871544077603838131133580568755896",
"57167245713490421917446915925497047439",
"123447476497720472257966752175987141387",
"317446491507132298277315582263118439420",
"295431493699747590890253818957597670076",
"200332098491383243548404101216252570327",
"53609913196163663466234630544657459904",
"218145649847258588491764398040511567894",
"41405911029498531585905568785719516006",
"308289042017929709234362216879411994897",
"29477058649894647593335612087882845165",
"53212624096253467392939997610003983594",
"277249507024545751170836353802608571407",
"296735671512801205899807700159457216529",
"78230981096906889488694412691229072855",
"51700262919835400818661312418821551579",
"236855639204601637226254564801479124817",
"112492885128031529255704768710786687293",
"122027880548280856296731056907757112249",
"338635715027284946192510813674274076733",
"47722954412281077972184358131447806241",
"305445162914552727921928109752228437748",
"86529263430116262023556515077327760004",
"210863697325564568953328563875980324985",
"71512261694260973317360639602257727658",
"245130860461879385097849712692637674389",
"291544181731331132521033901461573566166",
"301599283665158959549440879650464112835",
"126313589959495968534608643578761941977",
"154311911610357682051939239432269056647",
"299970153546455030861207775195215281201",
"304865229847626266613536898500603636047",
"166667943245284662394745356212073869203",
"100597344960011773141180656632317268923",
"29081931961268833606786784950965245133",
"252476402788918899484424910563476657556",
"273420364523301081788961131695833786907",
"180729135370410409384257160219276308788",
"107434221917751136181145137152505576152",
"174108966744717207868818676884263673209",
"286465337532345932698382397082827544218",
"129935868747583037202132643521284266257",
"85691403451761945712994817537469186130",
"128095499951847234825646010950335816884",
"5442375181804668495289400337671113766",
"84505874207057510535961224203773193061",
"327520656584893588977603577971203172089"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ae50f8562306a7ea1cf3c9722f97ee244f974729",
"signature_version": "v1",
"id": "CVE-2025-39952-2ccc80bd"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1197.0,
"function_hash": "135613157120599713341597809299785622522"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_parse_response_frame"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6085291a1a5865d4ad70f0e5812d524ebd5d1711",
"signature_version": "v1",
"id": "CVE-2025-39952-40b3c7df"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1197.0,
"function_hash": "135613157120599713341597809299785622522"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_parse_response_frame"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2203ef417044b10a8563ade6a17c74183745d72e",
"signature_version": "v1",
"id": "CVE-2025-39952-4200bfe0"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1282.0,
"function_hash": "137210813498909658501097772418704292277"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_cfg_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fe9e4d0c39311d0f97b024147a0d155333f388b5",
"signature_version": "v1",
"id": "CVE-2025-39952-53559900"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"52729713022903163691114484007988587396",
"311306171922651435453821786187043026459",
"99633118192286337796838005465710409213",
"119702650257396440959380411312753542333",
"23302768961411200988790391121160044231",
"170828764455206766174938600994357904225",
"19400927079811201732127506595781178594",
"229243886424842139551787234515045718895",
"5521898401551355422555494733546337566"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.h"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fe9e4d0c39311d0f97b024147a0d155333f388b5",
"signature_version": "v1",
"id": "CVE-2025-39952-794e0796"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"192272987724621188587032314135669304799",
"3096871544077603838131133580568755896",
"57167245713490421917446915925497047439",
"123447476497720472257966752175987141387",
"317446491507132298277315582263118439420",
"295431493699747590890253818957597670076",
"200332098491383243548404101216252570327",
"53609913196163663466234630544657459904",
"218145649847258588491764398040511567894",
"41405911029498531585905568785719516006",
"308289042017929709234362216879411994897",
"29477058649894647593335612087882845165",
"53212624096253467392939997610003983594",
"277249507024545751170836353802608571407",
"296735671512801205899807700159457216529",
"78230981096906889488694412691229072855",
"51700262919835400818661312418821551579",
"236855639204601637226254564801479124817",
"112492885128031529255704768710786687293",
"122027880548280856296731056907757112249",
"338635715027284946192510813674274076733",
"47722954412281077972184358131447806241",
"305445162914552727921928109752228437748",
"86529263430116262023556515077327760004",
"210863697325564568953328563875980324985",
"71512261694260973317360639602257727658",
"245130860461879385097849712692637674389",
"291544181731331132521033901461573566166",
"301599283665158959549440879650464112835",
"126313589959495968534608643578761941977",
"154311911610357682051939239432269056647",
"299970153546455030861207775195215281201",
"304865229847626266613536898500603636047",
"166667943245284662394745356212073869203",
"100597344960011773141180656632317268923",
"29081931961268833606786784950965245133",
"252476402788918899484424910563476657556",
"273420364523301081788961131695833786907",
"180729135370410409384257160219276308788",
"107434221917751136181145137152505576152",
"174108966744717207868818676884263673209",
"286465337532345932698382397082827544218",
"129935868747583037202132643521284266257",
"85691403451761945712994817537469186130",
"128095499951847234825646010950335816884",
"5442375181804668495289400337671113766",
"84505874207057510535961224203773193061",
"327520656584893588977603577971203172089"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2203ef417044b10a8563ade6a17c74183745d72e",
"signature_version": "v1",
"id": "CVE-2025-39952-8b5edd38"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"192272987724621188587032314135669304799",
"3096871544077603838131133580568755896",
"57167245713490421917446915925497047439",
"123447476497720472257966752175987141387",
"317446491507132298277315582263118439420",
"295431493699747590890253818957597670076",
"200332098491383243548404101216252570327",
"53609913196163663466234630544657459904",
"218145649847258588491764398040511567894",
"41405911029498531585905568785719516006",
"308289042017929709234362216879411994897",
"29477058649894647593335612087882845165",
"53212624096253467392939997610003983594",
"277249507024545751170836353802608571407",
"296735671512801205899807700159457216529",
"78230981096906889488694412691229072855",
"51700262919835400818661312418821551579",
"236855639204601637226254564801479124817",
"112492885128031529255704768710786687293",
"122027880548280856296731056907757112249",
"338635715027284946192510813674274076733",
"47722954412281077972184358131447806241",
"305445162914552727921928109752228437748",
"86529263430116262023556515077327760004",
"210863697325564568953328563875980324985",
"71512261694260973317360639602257727658",
"245130860461879385097849712692637674389",
"291544181731331132521033901461573566166",
"301599283665158959549440879650464112835",
"126313589959495968534608643578761941977",
"154311911610357682051939239432269056647",
"299970153546455030861207775195215281201",
"304865229847626266613536898500603636047",
"166667943245284662394745356212073869203",
"100597344960011773141180656632317268923",
"29081931961268833606786784950965245133",
"252476402788918899484424910563476657556",
"273420364523301081788961131695833786907",
"180729135370410409384257160219276308788",
"107434221917751136181145137152505576152",
"174108966744717207868818676884263673209",
"286465337532345932698382397082827544218",
"129935868747583037202132643521284266257",
"85691403451761945712994817537469186130",
"128095499951847234825646010950335816884",
"5442375181804668495289400337671113766",
"84505874207057510535961224203773193061",
"327520656584893588977603577971203172089"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6085291a1a5865d4ad70f0e5812d524ebd5d1711",
"signature_version": "v1",
"id": "CVE-2025-39952-97f24233"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1197.0,
"function_hash": "135613157120599713341597809299785622522"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_parse_response_frame"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fe9e4d0c39311d0f97b024147a0d155333f388b5",
"signature_version": "v1",
"id": "CVE-2025-39952-a0ad1e7e"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1282.0,
"function_hash": "137210813498909658501097772418704292277"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_cfg_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2203ef417044b10a8563ade6a17c74183745d72e",
"signature_version": "v1",
"id": "CVE-2025-39952-a26ceaa9"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"52729713022903163691114484007988587396",
"311306171922651435453821786187043026459",
"99633118192286337796838005465710409213",
"119702650257396440959380411312753542333",
"23302768961411200988790391121160044231",
"170828764455206766174938600994357904225",
"19400927079811201732127506595781178594",
"229243886424842139551787234515045718895",
"5521898401551355422555494733546337566"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.h"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ae50f8562306a7ea1cf3c9722f97ee244f974729",
"signature_version": "v1",
"id": "CVE-2025-39952-aaee2407"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1282.0,
"function_hash": "137210813498909658501097772418704292277"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_cfg_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6085291a1a5865d4ad70f0e5812d524ebd5d1711",
"signature_version": "v1",
"id": "CVE-2025-39952-bb982efa"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1197.0,
"function_hash": "135613157120599713341597809299785622522"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_parse_response_frame"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ae50f8562306a7ea1cf3c9722f97ee244f974729",
"signature_version": "v1",
"id": "CVE-2025-39952-c008dbec"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"52729713022903163691114484007988587396",
"311306171922651435453821786187043026459",
"99633118192286337796838005465710409213",
"119702650257396440959380411312753542333",
"23302768961411200988790391121160044231",
"170828764455206766174938600994357904225",
"19400927079811201732127506595781178594",
"229243886424842139551787234515045718895",
"5521898401551355422555494733546337566"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.h"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6085291a1a5865d4ad70f0e5812d524ebd5d1711",
"signature_version": "v1",
"id": "CVE-2025-39952-d9cb4756"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 1282.0,
"function_hash": "137210813498909658501097772418704292277"
},
"target": {
"file": "drivers/net/wireless/microchip/wilc1000/wlan_cfg.c",
"function": "wilc_wlan_cfg_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ae50f8562306a7ea1cf3c9722f97ee244f974729",
"signature_version": "v1",
"id": "CVE-2025-39952-f8a4a62f"
}
]