{"api_version":"1","generated_at":"2026-08-22T08:15:02+00:00","cve":"CVE-2023-54012","urls":{"html":"https://cve.report/CVE-2023-54012","api":"https://cve.report/api/cve/CVE-2023-54012.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2023-54012","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2023-54012"},"summary":{"title":"net: fix stack overflow when LRO is disabled for virtual interfaces","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fix stack overflow when LRO is disabled for virtual interfaces\n\nWhen the virtual interface's feature is updated, it synchronizes the\nupdated feature for its own lower interface.\nThis propagation logic should be worked as the iteration, not recursively.\nBut it works recursively due to the netdev notification unexpectedly.\nThis problem occurs when it disables LRO only for the team and bonding\ninterface type.\n\n       team0\n         |\n  +------+------+-----+-----+\n  |      |      |     |     |\nteam1  team2  team3  ...  team200\n\nIf team0's LRO feature is updated, it generates the NETDEV_FEAT_CHANGE\nevent to its own lower interfaces(team1 ~ team200).\nIt is worked by netdev_sync_lower_features().\nSo, the NETDEV_FEAT_CHANGE notification logic of each lower interface\nwork iteratively.\nBut generated NETDEV_FEAT_CHANGE event is also sent to the upper\ninterface too.\nupper interface(team0) generates the NETDEV_FEAT_CHANGE event for its own\nlower interfaces again.\nlower and upper interfaces receive this event and generate this\nevent again and again.\nSo, the stack overflow occurs.\n\nBut it is not the infinite loop issue.\nBecause the netdev_sync_lower_features() updates features before\ngenerating the NETDEV_FEAT_CHANGE event.\nAlready synchronized lower interfaces skip notification logic.\nSo, it is just the problem that iteration logic is changed to the\nrecursive unexpectedly due to the notification mechanism.\n\nReproducer:\n\nip link add team0 type team\nethtool -K team0 lro on\nfor i in {1..200}\ndo\n        ip link add team$i master team0 type team\n        ethtool -K team$i lro on\ndone\n\nethtool -K team0 lro off\n\nIn order to fix it, the notifier_ctx member of bonding/team is introduced.","state":"PUBLISHED","assigner":"Linux","published_at":"2025-12-24 11:15:54","updated_at":"2026-08-04 10:19:25"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/cf3b5cd7127cc10c5b12400c545f263f0e5e715c","name":"https://git.kernel.org/stable/c/cf3b5cd7127cc10c5b12400c545f263f0e5e715c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9ea0c5f90a27b5b884d880e146e0f65f3052e401","name":"https://git.kernel.org/stable/c/9ea0c5f90a27b5b884d880e146e0f65f3052e401","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ed66e6327a69fec95034cda2ac5b6a57b8b3b622","name":"https://git.kernel.org/stable/c/ed66e6327a69fec95034cda2ac5b6a57b8b3b622","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6bf00bb3dc7e5b9fb05488e11616e65d64e975fa","name":"https://git.kernel.org/stable/c/6bf00bb3dc7e5b9fb05488e11616e65d64e975fa","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4bb955c4d2830a58c08e2a48ab75d75368e3ff36","name":"https://git.kernel.org/stable/c/4bb955c4d2830a58c08e2a48ab75d75368e3ff36","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ae9b15fbe63447bc1d3bba3769f409d17ca6fdf6","name":"https://git.kernel.org/stable/c/ae9b15fbe63447bc1d3bba3769f409d17ca6fdf6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-54012","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-54012","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d 9ea0c5f90a27b5b884d880e146e0f65f3052e401 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d 4bb955c4d2830a58c08e2a48ab75d75368e3ff36 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d cf3b5cd7127cc10c5b12400c545f263f0e5e715c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d ed66e6327a69fec95034cda2ac5b6a57b8b3b622 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d 6bf00bb3dc7e5b9fb05488e11616e65d64e975fa git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fd867d51f889aec11cca235ebb008578780d052d ae9b15fbe63447bc1d3bba3769f409d17ca6fdf6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.4","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.4 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.4.244 5.4.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.181 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.114 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.31 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.3.5 6.3.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.4 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2023","cve_id":"54012","cve":"CVE-2023-54012","epss":"0.001490000","percentile":"0.045440000","score_date":"2026-08-06","updated_at":"2026-08-07 00:14:20"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/net/bonding/bond_main.c","drivers/net/team/team.c","include/linux/if_team.h","include/net/bonding.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"9ea0c5f90a27b5b884d880e146e0f65f3052e401","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"},{"lessThan":"4bb955c4d2830a58c08e2a48ab75d75368e3ff36","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"},{"lessThan":"cf3b5cd7127cc10c5b12400c545f263f0e5e715c","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"},{"lessThan":"ed66e6327a69fec95034cda2ac5b6a57b8b3b622","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"},{"lessThan":"6bf00bb3dc7e5b9fb05488e11616e65d64e975fa","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"},{"lessThan":"ae9b15fbe63447bc1d3bba3769f409d17ca6fdf6","status":"affected","version":"fd867d51f889aec11cca235ebb008578780d052d","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/net/bonding/bond_main.c","drivers/net/team/team.c","include/linux/if_team.h","include/net/bonding.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.4"},{"lessThan":"4.4","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.4.*","status":"unaffected","version":"5.4.244","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.181","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.114","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.31","versionType":"semver"},{"lessThanOrEqual":"6.3.*","status":"unaffected","version":"6.3.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"6.4","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.4.244","versionStartIncluding":"4.4","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.181","versionStartIncluding":"4.4","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.114","versionStartIncluding":"4.4","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.31","versionStartIncluding":"4.4","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.3.5","versionStartIncluding":"4.4","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.4","versionStartIncluding":"4.4","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fix stack overflow when LRO is disabled for virtual interfaces\n\nWhen the virtual interface's feature is updated, it synchronizes the\nupdated feature for its own lower interface.\nThis propagation logic should be worked as the iteration, not recursively.\nBut it works recursively due to the netdev notification unexpectedly.\nThis problem occurs when it disables LRO only for the team and bonding\ninterface type.\n\n       team0\n         |\n  +------+------+-----+-----+\n  |      |      |     |     |\nteam1  team2  team3  ...  team200\n\nIf team0's LRO feature is updated, it generates the NETDEV_FEAT_CHANGE\nevent to its own lower interfaces(team1 ~ team200).\nIt is worked by netdev_sync_lower_features().\nSo, the NETDEV_FEAT_CHANGE notification logic of each lower interface\nwork iteratively.\nBut generated NETDEV_FEAT_CHANGE event is also sent to the upper\ninterface too.\nupper interface(team0) generates the NETDEV_FEAT_CHANGE event for its own\nlower interfaces again.\nlower and upper interfaces receive this event and generate this\nevent again and again.\nSo, the stack overflow occurs.\n\nBut it is not the infinite loop issue.\nBecause the netdev_sync_lower_features() updates features before\ngenerating the NETDEV_FEAT_CHANGE event.\nAlready synchronized lower interfaces skip notification logic.\nSo, it is just the problem that iteration logic is changed to the\nrecursive unexpectedly due to the notification mechanism.\n\nReproducer:\n\nip link add team0 type team\nethtool -K team0 lro on\nfor i in {1..200}\ndo\n        ip link add team$i master team0 type team\n        ethtool -K team$i lro on\ndone\n\nethtool -K team0 lro off\n\nIn order to fix it, the notifier_ctx member of bonding/team is introduced."}],"metrics":[{"cvssV3_1":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"providerMetadata":{"dateUpdated":"2026-08-04T09:17:11.203Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/9ea0c5f90a27b5b884d880e146e0f65f3052e401"},{"url":"https://git.kernel.org/stable/c/4bb955c4d2830a58c08e2a48ab75d75368e3ff36"},{"url":"https://git.kernel.org/stable/c/cf3b5cd7127cc10c5b12400c545f263f0e5e715c"},{"url":"https://git.kernel.org/stable/c/ed66e6327a69fec95034cda2ac5b6a57b8b3b622"},{"url":"https://git.kernel.org/stable/c/6bf00bb3dc7e5b9fb05488e11616e65d64e975fa"},{"url":"https://git.kernel.org/stable/c/ae9b15fbe63447bc1d3bba3769f409d17ca6fdf6"}],"title":"net: fix stack overflow when LRO is disabled for virtual interfaces","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2023-54012","datePublished":"2025-12-24T10:55:44.835Z","dateReserved":"2025-12-24T10:53:46.178Z","dateUpdated":"2026-08-04T09:17:11.203Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2025-12-24 11:15:54","lastModifiedDate":"2026-08-04 10:19:25","problem_types":[],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2023","CveId":"54012","Ordinal":"1","Title":"net: fix stack overflow when LRO is disabled for virtual interfa","CVE":"CVE-2023-54012","Year":"2023"},"notes":[{"CveYear":"2023","CveId":"54012","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fix stack overflow when LRO is disabled for virtual interfaces\n\nWhen the virtual interface's feature is updated, it synchronizes the\nupdated feature for its own lower interface.\nThis propagation logic should be worked as the iteration, not recursively.\nBut it works recursively due to the netdev notification unexpectedly.\nThis problem occurs when it disables LRO only for the team and bonding\ninterface type.\n\n       team0\n         |\n  +------+------+-----+-----+\n  |      |      |     |     |\nteam1  team2  team3  ...  team200\n\nIf team0's LRO feature is updated, it generates the NETDEV_FEAT_CHANGE\nevent to its own lower interfaces(team1 ~ team200).\nIt is worked by netdev_sync_lower_features().\nSo, the NETDEV_FEAT_CHANGE notification logic of each lower interface\nwork iteratively.\nBut generated NETDEV_FEAT_CHANGE event is also sent to the upper\ninterface too.\nupper interface(team0) generates the NETDEV_FEAT_CHANGE event for its own\nlower interfaces again.\nlower and upper interfaces receive this event and generate this\nevent again and again.\nSo, the stack overflow occurs.\n\nBut it is not the infinite loop issue.\nBecause the netdev_sync_lower_features() updates features before\ngenerating the NETDEV_FEAT_CHANGE event.\nAlready synchronized lower interfaces skip notification logic.\nSo, it is just the problem that iteration logic is changed to the\nrecursive unexpectedly due to the notification mechanism.\n\nReproducer:\n\nip link add team0 type team\nethtool -K team0 lro on\nfor i in {1..200}\ndo\n        ip link add team$i master team0 type team\n        ethtool -K team$i lro on\ndone\n\nethtool -K team0 lro off\n\nIn order to fix it, the notifier_ctx member of bonding/team is introduced.","Type":"Description","Title":"net: fix stack overflow when LRO is disabled for virtual interfa"}]}}}