In the Linux kernel, the following vulnerability has been resolved:
ice: fix memleak in iceinittx_topology()
Fix leak of the FW blob (DDP pkg).
Make icecfgtxtopo() const-correct, so iceinittxtopology() can avoid copying whole FW blob. Copy just the topology section, and only when needed. Reuse the buffer allocated for the read of the current topology.
This was found by kmemleak, with the following trace for each PF: [<ffffffff8761044d>] kmemdupnoprof+0x1d/0x50 [<ffffffffc0a0a480>] iceinitddpconfig+0x100/0x220 [ice] [<ffffffffc0a0da7f>] iceinitdev+0x6f/0x200 [ice] [<ffffffffc0a0dc49>] iceinit+0x29/0x560 [ice] [<ffffffffc0a10c1d>] iceprobe+0x21d/0x310 [ice]
Constify icecfgtx_topo() @buf parameter. This cascades further down to few more functions.
{ "vanir_signatures": [ { "id": "CVE-2024-50190-037d6732", "signature_type": "Function", "digest": { "function_hash": "30992007525076639608350062526833549227", "length": 538.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_find_seg_in_pkg" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-067b0113", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "42833460052179214960094095351244693366", "239614783624115753798686452569050283829", "37512229705857887441379446774901645277", "104651681917411203507506630465777232955", "117046244304684632074332881777341574681", "11221046097735168686367480519577847459", "164810761210809596937095388686610851903", "190729206880809859963393224775663146620" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_main.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-258347da", "signature_type": "Function", "digest": { "function_hash": "121336705518777092010389293406310830937", "length": 337.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_pkg_val_buf" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-2cb7c425", "signature_type": "Function", "digest": { "function_hash": "121336705518777092010389293406310830937", "length": 337.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_pkg_val_buf" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-2d5dd5bd", "signature_type": "Function", "digest": { "function_hash": "52173013897087928026134223000622663256", "length": 3354.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_cfg_tx_topo" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-38a9d7b6", "signature_type": "Function", "digest": { "function_hash": "245234178678477537170112190323926904294", "length": 405.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_pkg_enum_buf" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-935a5722", "signature_type": "Function", "digest": { "function_hash": "245234178678477537170112190323926904294", "length": 405.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_pkg_enum_buf" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-976ce231", "signature_type": "Function", "digest": { "function_hash": "52173013897087928026134223000622663256", "length": 3354.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_cfg_tx_topo" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-a0ffc6b5", "signature_type": "Function", "digest": { "function_hash": "149515044543494207720681164257797671485", "length": 950.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_verify_pkg" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-bd1779c3", "signature_type": "Function", "digest": { "function_hash": "144698251945533394446332968109335714437", "length": 743.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_main.c", "function": "ice_init_tx_topology" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-c71576b4", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "207816108725604949273600772173975818585", "254547930601988829717102908405829885701", "163009858948152592866024519291347390487", "335208267571418808816721906498544934336", "4657593089283509157678095106134550580", "66004974518071528717168170235028797749", "177980633535832881554161210527952953710", "194780780592733063157188788745012718316", "147192730442818542938365555939892993343", "316073509814390357612309211660465907372", "126367179562594187251772803558825917505", "280546620295117538453452009218022109549", "150261986335804839398418382646846394075", "192358167589059092104920152754264240572", "128921695281781461758614022658641310634", "166309995385734539233387955938070378934", "105507868877532828898242523944914846511", "322730172689031466769066114544040940522", "118272811853390451799102433560332279269", "229712455236363345623446605342501770180", "331655384784309498698556848094525504486", "313942757445414007518356074140593525875", "251099014564338418441712101559861090059", "262985213021788648975371508990323409696", "215167380931900551877203540821586738369", "184909927198063783453251274918058448821", "221527035823708799194522682902159981228", "7227860917325587253601274265101023241", "104445212966632487723827052959693415806", "335296194742084280639619416151761781674", "95894567184761216505841502115741392693", "224863065909564831293345723792007843560", "241348348545123341655400520922873715829", "164190415433353182150049613414087115863", "213673572237138327147481227577944801966", "260781327734240123956317751350260769019", "250070186749053221561543057878951019222", "96483957648574296915733075517516886365", "107835373290049434385776600084950052419", "119826640993988513855510288481009238968", "226197257054684331200155697354852574927", "117787369749362511904469847531303991714", "78211185472081331270621534840550304241", "80613719940695769668218115839964431027", "304211832129540301237042349081295396670", "66913466319407860543230010138863123844", "274513413016243186733948838050211761038", "114206513137770459637790894279745136938", "307991622759476947437438513795307927254", "258146408549439847825473804565384379587", "230740042825092161474781054294697700190", "155153580777055540417085144890567153490", "74529293401919682814882362789045157010", "53251406725365549656720646299311830844", "295013204211980247717588731885444277951", "72105533501281654918042621654228325741", "198641074479740854874605724254316268968", "79877136909772726056015142613966114337", "258515067060854255774532164455961172087", "1551312874745019186860746012628394549", "282448695216309425032384655077520055371", "164188071432315523595545473851641229207", "315860015182239831910270171368198404087", "164824771953016249633580452943489565362", "293998843418309322363392718920928864816", "216067156131689722898707925062176162660", "275782076437180027571071730146653617023", "88457337384654307480337293478697889028" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-cdbff284", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "252795383351363519032003064295913159596", "287361844449433748927290426638250089844", "45196247425128330769181417390140312368", "194870575594131957044987277974750265629", "199634968215969394449782969660077012903", "49402081531555925882910146067112266276" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.h" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-ce962c66", "signature_type": "Function", "digest": { "function_hash": "149515044543494207720681164257797671485", "length": 950.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_verify_pkg" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-e0944f13", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "207816108725604949273600772173975818585", "254547930601988829717102908405829885701", "163009858948152592866024519291347390487", "335208267571418808816721906498544934336", "4657593089283509157678095106134550580", "66004974518071528717168170235028797749", "177980633535832881554161210527952953710", "194780780592733063157188788745012718316", "147192730442818542938365555939892993343", "316073509814390357612309211660465907372", "126367179562594187251772803558825917505", "280546620295117538453452009218022109549", "150261986335804839398418382646846394075", "192358167589059092104920152754264240572", "128921695281781461758614022658641310634", "166309995385734539233387955938070378934", "105507868877532828898242523944914846511", "322730172689031466769066114544040940522", "118272811853390451799102433560332279269", "229712455236363345623446605342501770180", "331655384784309498698556848094525504486", "313942757445414007518356074140593525875", "251099014564338418441712101559861090059", "262985213021788648975371508990323409696", "215167380931900551877203540821586738369", "184909927198063783453251274918058448821", "221527035823708799194522682902159981228", "7227860917325587253601274265101023241", "104445212966632487723827052959693415806", "335296194742084280639619416151761781674", "95894567184761216505841502115741392693", "224863065909564831293345723792007843560", "241348348545123341655400520922873715829", "164190415433353182150049613414087115863", "213673572237138327147481227577944801966", "260781327734240123956317751350260769019", "250070186749053221561543057878951019222", "96483957648574296915733075517516886365", "107835373290049434385776600084950052419", "119826640993988513855510288481009238968", "226197257054684331200155697354852574927", "117787369749362511904469847531303991714", "78211185472081331270621534840550304241", "80613719940695769668218115839964431027", "304211832129540301237042349081295396670", "66913466319407860543230010138863123844", "274513413016243186733948838050211761038", "114206513137770459637790894279745136938", "307991622759476947437438513795307927254", "258146408549439847825473804565384379587", "230740042825092161474781054294697700190", "155153580777055540417085144890567153490", "74529293401919682814882362789045157010", "53251406725365549656720646299311830844", "295013204211980247717588731885444277951", "72105533501281654918042621654228325741", "198641074479740854874605724254316268968", "79877136909772726056015142613966114337", "258515067060854255774532164455961172087", "1551312874745019186860746012628394549", "282448695216309425032384655077520055371", "164188071432315523595545473851641229207", "315860015182239831910270171368198404087", "164824771953016249633580452943489565362", "293998843418309322363392718920928864816", "216067156131689722898707925062176162660", "275782076437180027571071730146653617023", "88457337384654307480337293478697889028" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-e602ddfe", "signature_type": "Function", "digest": { "function_hash": "30992007525076639608350062526833549227", "length": 538.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.c", "function": "ice_find_seg_in_pkg" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-f8738037", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "42833460052179214960094095351244693366", "239614783624115753798686452569050283829", "37512229705857887441379446774901645277", "104651681917411203507506630465777232955", "117046244304684632074332881777341574681", "11221046097735168686367480519577847459", "164810761210809596937095388686610851903", "190729206880809859963393224775663146620" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c188afdc36113760873ec78cbc036f6b05f77621", "target": { "file": "drivers/net/ethernet/intel/ice/ice_main.c" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-fc4e0e5c", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "252795383351363519032003064295913159596", "287361844449433748927290426638250089844", "45196247425128330769181417390140312368", "194870575594131957044987277974750265629", "185031085414002802865788132708040208325", "49402081531555925882910146067112266276" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_ddp.h" }, "deprecated": false, "signature_version": "v1" }, { "id": "CVE-2024-50190-fcf41893", "signature_type": "Function", "digest": { "function_hash": "144698251945533394446332968109335714437", "length": 743.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@43544b4e30732c3d88f423252281915d5bc739b6", "target": { "file": "drivers/net/ethernet/intel/ice/ice_main.c", "function": "ice_init_tx_topology" }, "deprecated": false, "signature_version": "v1" } ] }