{"id":"CVE-2026-97966","state":"PUBLISHED","title":"octeontx2-pf: reset HTB scheduler topology before freeing queues","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-pf: reset HTB scheduler topology before freeing queues\n\nHTB offload programs NIX_AF_TLxX_TOPOLOGY on QoS-allocated scheduler\nqueues via otx2_qos_txschq_set_parent_topology(), but teardown freed\nthose queues without clearing TOPOLOGY.  The AF only restores PARENT and\nSCHEDULE on free, so PRIO_ANCHOR/RR_PRIO settings can survive in the\nshared scheduler pool and affect later allocations.\n\nAdd otx2_qos_reset_schq_topology() and otx2_qos_free_hw_schq() to zero\nTL4 through TL2 TOPOLOGY before each schq is returned to the AF during\nhierarchy teardown and cfg rollback.  Skip the aggregation level (TL1):\nit is a per-tx-link queue shared by the PF, default Tx hierarchy and VFs,\nand is not freed back to the AF by nix_txschq_free_one().","publishedAt":"2026-09-25T10:23:08.543Z","updatedAt":"2026-10-19T09:11:32.067Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"16c5c8ea5017952ff14c87626a45359d195dda6f","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"0aa2dd6eaa347c7aab448df0eec0afcfe7489885","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"621c99be42e3f5cb68a6af9480a255218a761c4e","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"2df186418e17b30b319cf9ff81aad137692ab107","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"ef39fca8508597fa565cf2be72a884a712fb98af","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/marvell/octeontx2/nic/qos.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/marvell/octeontx2/nic/qos.c"]}],"references":["https://git.kernel.org/stable/c/16c5c8ea5017952ff14c87626a45359d195dda6f","https://git.kernel.org/stable/c/0aa2dd6eaa347c7aab448df0eec0afcfe7489885","https://git.kernel.org/stable/c/621c99be42e3f5cb68a6af9480a255218a761c4e","https://git.kernel.org/stable/c/2df186418e17b30b319cf9ff81aad137692ab107","https://git.kernel.org/stable/c/ef39fca8508597fa565cf2be72a884a712fb98af"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/97xxx/CVE-2026-97966.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97966","state":"PUBLISHED","datePublished":"2026-09-25T10:23:08.543Z","dateUpdated":"2026-10-19T09:11:32.067Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:18:58.206Z"},"containers":{"cna":{"title":"octeontx2-pf: reset HTB scheduler topology before freeing queues","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nocteontx2-pf: reset HTB scheduler topology before freeing queues\n\nHTB offload programs NIX_AF_TLxX_TOPOLOGY on QoS-allocated scheduler\nqueues via otx2_qos_txschq_set_parent_topology(), but teardown freed\nthose queues without clearing TOPOLOGY.  The AF only restores PARENT and\nSCHEDULE on free, so PRIO_ANCHOR/RR_PRIO settings can survive in the\nshared scheduler pool and affect later allocations.\n\nAdd otx2_qos_reset_schq_topology() and otx2_qos_free_hw_schq() to zero\nTL4 through TL2 TOPOLOGY before each schq is returned to the AF during\nhierarchy teardown and cfg rollback.  Skip the aggregation level (TL1):\nit is a per-tx-link queue shared by the PF, default Tx hierarchy and VFs,\nand is not freed back to the AF by nix_txschq_free_one()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"16c5c8ea5017952ff14c87626a45359d195dda6f","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"0aa2dd6eaa347c7aab448df0eec0afcfe7489885","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"621c99be42e3f5cb68a6af9480a255218a761c4e","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"2df186418e17b30b319cf9ff81aad137692ab107","versionType":"git"},{"version":"5e6808b4c68d7882971514ab3279926eb07c8b2d","status":"affected","lessThan":"ef39fca8508597fa565cf2be72a884a712fb98af","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/marvell/octeontx2/nic/qos.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.5","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/marvell/octeontx2/nic/qos.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/16c5c8ea5017952ff14c87626a45359d195dda6f"},{"url":"https://git.kernel.org/stable/c/0aa2dd6eaa347c7aab448df0eec0afcfe7489885"},{"url":"https://git.kernel.org/stable/c/621c99be42e3f5cb68a6af9480a255218a761c4e"},{"url":"https://git.kernel.org/stable/c/2df186418e17b30b319cf9ff81aad137692ab107"},{"url":"https://git.kernel.org/stable/c/ef39fca8508597fa565cf2be72a884a712fb98af"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:11:32.067Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.12.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"7.2.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.5","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}