{"api_version":"1","generated_at":"2026-07-24T19:43:36+00:00","cve":"CVE-2026-64223","urls":{"html":"https://cve.report/CVE-2026-64223","api":"https://cve.report/api/cve/CVE-2026-64223.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-64223","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-64223"},"summary":{"title":"wifi: mac80211: consume only present negotiated TTLM maps","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: consume only present negotiated TTLM maps\n\nieee80211_tid_to_link_map_size_ok() validates negotiated TTLM elements\nagainst the number of link-map entries indicated by link_map_presence.\nieee80211_parse_neg_ttlm() must consume the same layout.\n\nThe parser advanced its cursor for every TID, including TIDs whose\npresence bit is clear and therefore have no map bytes in the element.\nA sparse map can then make a later present TID read past the validated\nelement.\n\nThe bad bytes land in neg_ttlm->{up,down}link[tid] but are gated by\nvalid_links before being applied to driver state, so a peer cannot\nturn the read into a policy change.  Under KUnit + KASAN with an\nexact-sized element allocation the OOB read is reported as a\nslab-out-of-bounds; whether the same trigger fires under the\nproduction RX path depends on surrounding allocator state.\n\nAdvance the cursor only when the current TID has a map present.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-07-24 16:16:50","updated_at":"2026-07-24 16:16:50"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/f7d395dc5008168ac5b9c1ac2791e59a6078cca1","name":"https://git.kernel.org/stable/c/f7d395dc5008168ac5b9c1ac2791e59a6078cca1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea","name":"https://git.kernel.org/stable/c/a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f","name":"https://git.kernel.org/stable/c/2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2dd9304727c7041df0a599595910bdbe02ad03c5","name":"https://git.kernel.org/stable/c/2dd9304727c7041df0a599595910bdbe02ad03c5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-64223","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64223","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 f7d395dc5008168ac5b9c1ac2791e59a6078cca1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 2dd9304727c7041df0a599595910bdbe02ad03c5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.9","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.9 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.92 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.34 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.11 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/mac80211/mlme.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"f7d395dc5008168ac5b9c1ac2791e59a6078cca1","status":"affected","version":"8f500fbc6c655976c8062b1f1e55bd0b3095d6c2","versionType":"git"},{"lessThan":"2dd9304727c7041df0a599595910bdbe02ad03c5","status":"affected","version":"8f500fbc6c655976c8062b1f1e55bd0b3095d6c2","versionType":"git"},{"lessThan":"2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f","status":"affected","version":"8f500fbc6c655976c8062b1f1e55bd0b3095d6c2","versionType":"git"},{"lessThan":"a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea","status":"affected","version":"8f500fbc6c655976c8062b1f1e55bd0b3095d6c2","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/mac80211/mlme.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.9"},{"lessThan":"6.9","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.92","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.34","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.11","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.92","versionStartIncluding":"6.9","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.34","versionStartIncluding":"6.9","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.11","versionStartIncluding":"6.9","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"6.9","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: consume only present negotiated TTLM maps\n\nieee80211_tid_to_link_map_size_ok() validates negotiated TTLM elements\nagainst the number of link-map entries indicated by link_map_presence.\nieee80211_parse_neg_ttlm() must consume the same layout.\n\nThe parser advanced its cursor for every TID, including TIDs whose\npresence bit is clear and therefore have no map bytes in the element.\nA sparse map can then make a later present TID read past the validated\nelement.\n\nThe bad bytes land in neg_ttlm->{up,down}link[tid] but are gated by\nvalid_links before being applied to driver state, so a peer cannot\nturn the read into a policy change.  Under KUnit + KASAN with an\nexact-sized element allocation the OOB read is reported as a\nslab-out-of-bounds; whether the same trigger fires under the\nproduction RX path depends on surrounding allocator state.\n\nAdvance the cursor only when the current TID has a map present."}],"providerMetadata":{"dateUpdated":"2026-07-24T15:23:08.629Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/f7d395dc5008168ac5b9c1ac2791e59a6078cca1"},{"url":"https://git.kernel.org/stable/c/2dd9304727c7041df0a599595910bdbe02ad03c5"},{"url":"https://git.kernel.org/stable/c/2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f"},{"url":"https://git.kernel.org/stable/c/a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea"}],"title":"wifi: mac80211: consume only present negotiated TTLM maps","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-64223","datePublished":"2026-07-24T15:23:08.629Z","dateReserved":"2026-07-19T15:36:31.770Z","dateUpdated":"2026-07-24T15:23:08.629Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-07-24 16:16:50","lastModifiedDate":"2026-07-24 16:16:50","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"64223","Ordinal":"1","Title":"wifi: mac80211: consume only present negotiated TTLM maps","CVE":"CVE-2026-64223","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"64223","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: consume only present negotiated TTLM maps\n\nieee80211_tid_to_link_map_size_ok() validates negotiated TTLM elements\nagainst the number of link-map entries indicated by link_map_presence.\nieee80211_parse_neg_ttlm() must consume the same layout.\n\nThe parser advanced its cursor for every TID, including TIDs whose\npresence bit is clear and therefore have no map bytes in the element.\nA sparse map can then make a later present TID read past the validated\nelement.\n\nThe bad bytes land in neg_ttlm->{up,down}link[tid] but are gated by\nvalid_links before being applied to driver state, so a peer cannot\nturn the read into a policy change.  Under KUnit + KASAN with an\nexact-sized element allocation the OOB read is reported as a\nslab-out-of-bounds; whether the same trigger fires under the\nproduction RX path depends on surrounding allocator state.\n\nAdvance the cursor only when the current TID has a map present.","Type":"Description","Title":"wifi: mac80211: consume only present negotiated TTLM maps"}]}}}