In the Linux kernel, the following vulnerability has been resolved:
net: stmmac: move the EST lock to struct stmmac_priv
Reinitialize the whole EST structure would also reset the mutex lock which is embedded in the EST structure, and then trigger the following warning. To address this, move the lock to struct stmmac_priv. We also need to reacquire the mutex lock when doing this initialization.
DEBUGLOCKSWARNON(lock->magic != lock) WARNING: CPU: 3 PID: 505 at kernel/locking/mutex.c:587 _mutexlock+0xd84/0x1068 Modules linked in: CPU: 3 PID: 505 Comm: tc Not tainted 6.9.0-rc6-00053-g0106679839f7-dirty #29 Hardware name: NXP i.MX8MPlus EVK board (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : _mutexlock+0xd84/0x1068 lr : _mutexlock+0xd84/0x1068 sp : ffffffc0864e3570 x29: ffffffc0864e3570 x28: ffffffc0817bdc78 x27: 0000000000000003 x26: ffffff80c54f1808 x25: ffffff80c9164080 x24: ffffffc080d723ac x23: 0000000000000000 x22: 0000000000000002 x21: 0000000000000000 x20: 0000000000000000 x19: ffffffc083bc3000 x18: ffffffffffffffff x17: ffffffc08117b080 x16: 0000000000000002 x15: ffffff80d2d40000 x14: 00000000000002da x13: ffffff80d2d404b8 x12: ffffffc082b5a5c8 x11: ffffffc082bca680 x10: ffffffc082bb2640 x9 : ffffffc082bb2698 x8 : 0000000000017fe8 x7 : c0000000ffffefff x6 : 0000000000000001 x5 : ffffff8178fe0d48 x4 : 0000000000000000 x3 : 0000000000000027 x2 : ffffff8178fe0d50 x1 : 0000000000000000 x0 : 0000000000000000 Call trace: _mutexlock+0xd84/0x1068 mutexlocknested+0x28/0x34 tcsetuptaprio+0x118/0x68c stmmacsetuptc+0x50/0xf0 tapriochange+0x868/0xc9c
[
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c",
"function": "stmmac_adjust_time"
},
"digest": {
"length": 1753.0,
"function_hash": "71323469251469031596481539953871341667"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-070f801a"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c",
"function": "stmmac_adjust_time"
},
"digest": {
"length": 1733.0,
"function_hash": "326777601162608377190507433636711596194"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-15278f68"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c"
},
"digest": {
"line_hashes": [
"137484108091782318388089784728114757143",
"279361982292280929254365776556562404147",
"194959873585301512495021796390422797776",
"157952141888367153971079909521075232790",
"282004721087519039049673926297330718636",
"156724078885482090984133792316876232509",
"222508278938073621891471608493581487432",
"129884021183073483851718919009116287412",
"162534999902431016944691968987478336872",
"65012825016850603145984732844526857590",
"85407429414914717952186490810484842378",
"223239378553922302077912084301254061228",
"119886196885719511440762157535879326675",
"64126606167541745788581254923113342212",
"321591042658504117767802247916204394326",
"197419123661951520333515482273717034804"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-156b4400"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c"
},
"digest": {
"line_hashes": [
"237645520188184273307400083099807887742",
"289778760997624489114912456212365167813",
"116772311279634743161387844435825326989",
"50685916860915120177558410766395424260",
"194784219398705490982367418668456753074",
"124937892877712793105749962275916475298",
"116858039396199717222281829278933989045",
"213289011560633897667715918830378790553",
"46723316611224175191487628097568641530",
"242551174021434073536408945485090109943",
"71638688774061986324261905321135417727",
"93240324753108373928400360466795298324",
"159354904528694713284610819023651824119",
"117086501764888602932406237600587318172",
"43895399980853488915915297284751251527",
"164446570012549781468302672115687237522",
"185473427731072370762989514699086224555",
"137693554330700040289953817095620900626",
"285713767770756902056244110725568737755",
"299221306983076722836504135315963919134",
"97234807153416153170514951763265414647",
"164044538996803393517792548392840733786",
"233161322808235127770732378492402362295",
"6004514273955552922720360805514718514",
"7459612934177946222963435412308374819",
"57938502963920725022950927605892803825",
"68595980718988266731427807595154230183",
"267483868300112197624364034370856370694",
"236426819543900669128192168494743945580",
"222031318692289700022105410078214786628",
"140394533094549962632016914863631888157",
"52763318455666043220355747083394633441"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-5a5cd7a8"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c"
},
"digest": {
"line_hashes": [
"137484108091782318388089784728114757143",
"279361982292280929254365776556562404147",
"71578338400176085487150718164927382962",
"267483868300112197624364034370856370694",
"306479051744786857017640962012058120887",
"113434115546268579765030588839276724178",
"222508278938073621891471608493581487432",
"129884021183073483851718919009116287412",
"162534999902431016944691968987478336872",
"65012825016850603145984732844526857590",
"85407429414914717952186490810484842378",
"223239378553922302077912084301254061228",
"157726616324708539178797245635710827484",
"297540753567615087574171583027755046892",
"321591042658504117767802247916204394326",
"197419123661951520333515482273717034804"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-5e173638"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c",
"function": "tc_setup_taprio"
},
"digest": {
"length": 3834.0,
"function_hash": "48647031078091666626406032645873817605"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-5fb80699"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "include/linux/stmmac.h"
},
"digest": {
"line_hashes": [
"333674063174533828078163010430049371591",
"75174911645185540713910013200259809042",
"188506848338583505078259744497830368398",
"193058421096598140069120823809869880368"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-6babb472"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "include/linux/stmmac.h"
},
"digest": {
"line_hashes": [
"333674063174533828078163010430049371591",
"75174911645185540713910013200259809042",
"188506848338583505078259744497830368398",
"193058421096598140069120823809869880368"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-76f3ce59"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c",
"function": "stmmac_adjust_time"
},
"digest": {
"length": 1733.0,
"function_hash": "326777601162608377190507433636711596194"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-91440213"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c"
},
"digest": {
"line_hashes": [
"237645520188184273307400083099807887742",
"289778760997624489114912456212365167813",
"116772311279634743161387844435825326989",
"50685916860915120177558410766395424260",
"194784219398705490982367418668456753074",
"124937892877712793105749962275916475298",
"116858039396199717222281829278933989045",
"213289011560633897667715918830378790553",
"46723316611224175191487628097568641530",
"242551174021434073536408945485090109943",
"71638688774061986324261905321135417727",
"93240324753108373928400360466795298324",
"159354904528694713284610819023651824119",
"117086501764888602932406237600587318172",
"43895399980853488915915297284751251527",
"164446570012549781468302672115687237522",
"185473427731072370762989514699086224555",
"137693554330700040289953817095620900626",
"285713767770756902056244110725568737755",
"299221306983076722836504135315963919134",
"97234807153416153170514951763265414647",
"164044538996803393517792548392840733786",
"233161322808235127770732378492402362295",
"6004514273955552922720360805514718514",
"7459612934177946222963435412308374819",
"57938502963920725022950927605892803825",
"68595980718988266731427807595154230183",
"267483868300112197624364034370856370694",
"236426819543900669128192168494743945580",
"222031318692289700022105410078214786628",
"140394533094549962632016914863631888157",
"52763318455666043220355747083394633441"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-94dd6a00"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "include/linux/stmmac.h"
},
"digest": {
"line_hashes": [
"333674063174533828078163010430049371591",
"75174911645185540713910013200259809042",
"188506848338583505078259744497830368398",
"193058421096598140069120823809869880368"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-bd837e94"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac.h"
},
"digest": {
"line_hashes": [
"176494297288267899341363275106936039678",
"185290091569432294961599529323968761029",
"289189000338702604544514107861007403293",
"339545970442156705830098245862372309331"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-c53c8cb1"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c"
},
"digest": {
"line_hashes": [
"237645520188184273307400083099807887742",
"289778760997624489114912456212365167813",
"116772311279634743161387844435825326989",
"50685916860915120177558410766395424260",
"194784219398705490982367418668456753074",
"124937892877712793105749962275916475298",
"116858039396199717222281829278933989045",
"213289011560633897667715918830378790553",
"46723316611224175191487628097568641530",
"242551174021434073536408945485090109943",
"71638688774061986324261905321135417727",
"93240324753108373928400360466795298324",
"159354904528694713284610819023651824119",
"117086501764888602932406237600587318172",
"43895399980853488915915297284751251527",
"164446570012549781468302672115687237522",
"122770085541588274843743997590789576640",
"317912753544398139933858823887942072570",
"285713767770756902056244110725568737755",
"299221306983076722836504135315963919134",
"181197022527039107769065434256303330369",
"55957564960617268206863453339209060927",
"233161322808235127770732378492402362295",
"6004514273955552922720360805514718514",
"7459612934177946222963435412308374819",
"57938502963920725022950927605892803825",
"83454468155218222729793524466652556973",
"157952141888367153971079909521075232790",
"282004721087519039049673926297330718636",
"156724078885482090984133792316876232509",
"36087406591129045449297526445865742316",
"52763318455666043220355747083394633441"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-c55281f3"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac.h"
},
"digest": {
"line_hashes": [
"176494297288267899341363275106936039678",
"185290091569432294961599529323968761029",
"289189000338702604544514107861007403293",
"339545970442156705830098245862372309331"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-ca2c01cb"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c",
"function": "tc_taprio_configure"
},
"digest": {
"length": 4082.0,
"function_hash": "233086256412416589710365174544131623707"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6f476aff2d8da1a189621c4c16a76a6c534e4312",
"signature_version": "v1",
"id": "CVE-2024-38594-df30b7a9"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c"
},
"digest": {
"line_hashes": [
"137484108091782318388089784728114757143",
"279361982292280929254365776556562404147",
"71578338400176085487150718164927382962",
"267483868300112197624364034370856370694",
"306479051744786857017640962012058120887",
"113434115546268579765030588839276724178",
"222508278938073621891471608493581487432",
"129884021183073483851718919009116287412",
"162534999902431016944691968987478336872",
"65012825016850603145984732844526857590",
"85407429414914717952186490810484842378",
"223239378553922302077912084301254061228",
"157726616324708539178797245635710827484",
"297540753567615087574171583027755046892",
"321591042658504117767802247916204394326",
"197419123661951520333515482273717034804"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-e3e1d3bb"
},
{
"signature_type": "Line",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac.h"
},
"digest": {
"line_hashes": [
"176494297288267899341363275106936039678",
"185290091569432294961599529323968761029",
"289189000338702604544514107861007403293",
"339545970442156705830098245862372309331"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b538fefeb1026aad9dcdcbb410c42b56dff8aae9",
"signature_version": "v1",
"id": "CVE-2024-38594-e8c7464e"
},
{
"signature_type": "Function",
"deprecated": false,
"target": {
"file": "drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c",
"function": "tc_taprio_configure"
},
"digest": {
"length": 4082.0,
"function_hash": "233086256412416589710365174544131623707"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@487f9030b1ef34bab123f2df2a4ccbe01ba84416",
"signature_version": "v1",
"id": "CVE-2024-38594-fd0397c3"
}
]