{"id":"CVE-2026-68373","state":"PUBLISHED","title":"wifi: at76c50x-usb: avoid length underflow in at76_guess_freq()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: at76c50x-usb: avoid length underflow in at76_guess_freq()\n\nat76_guess_freq() checks only that the received frame is at least a bare\n802.11 header (24 bytes) before subtracting the fixed management-body\noffset:\n\n\tlen -= el_off;\n\nFor both beacon and probe response frames, el_off is 36. If the frame is\nshorter than el_off, subtracting it causes the calculated IE length to\nwrap. The length is eventually passed to cfg80211_find_elem_match() as a\nvery large unsigned value, so the element walk runs beyond the RX skb.\n\nThis path is reached from at76_rx_tasklet() while scanning. If the device\ndelivers a truncated beacon or probe response, the oversized IE length\ncauses an out-of-bounds read during scanning.\n\nSkip the IE lookup if the frame does not reach the variable elements,\nbefore subtracting el_off.","publishedAt":"2026-08-10T12:03:51.663Z","updatedAt":"2026-10-19T21:09:06.316Z","severity":{"score":8.1,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"cb831aff2f850f72bc5ff5ad77d0a70bb5a84061","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"4875680d1703f56afa6257ba30244f2fb44ed205","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"b406f33d234f98c8b310fdab5cbb492d85e98e49","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"e165a1d295e7e814e13b0f92c86e5d48309509ce","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"bcde7249d45f52f994a9872bedf45994472ade77","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"fb1b50ab699211e777dca5ccfb648788b6a6e519","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"f742d9c98b5c504fc9e6744eef13a721c2aea486","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"61a799ffd1e5a4fd3702d547828b7ff3d161468e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/atmel/at76c50x-usb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/atmel/at76c50x-usb.c"]}],"references":["https://git.kernel.org/stable/c/cb831aff2f850f72bc5ff5ad77d0a70bb5a84061","https://git.kernel.org/stable/c/4875680d1703f56afa6257ba30244f2fb44ed205","https://git.kernel.org/stable/c/b406f33d234f98c8b310fdab5cbb492d85e98e49","https://git.kernel.org/stable/c/e165a1d295e7e814e13b0f92c86e5d48309509ce","https://git.kernel.org/stable/c/bcde7249d45f52f994a9872bedf45994472ade77","https://git.kernel.org/stable/c/fb1b50ab699211e777dca5ccfb648788b6a6e519","https://git.kernel.org/stable/c/f742d9c98b5c504fc9e6744eef13a721c2aea486","https://git.kernel.org/stable/c/61a799ffd1e5a4fd3702d547828b7ff3d161468e"],"weaknesses":["CWE-190"],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68373.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68373","state":"PUBLISHED","datePublished":"2026-08-10T12:03:51.663Z","dateUpdated":"2026-10-19T21:09:06.316Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.386Z"},"containers":{"cna":{"title":"wifi: at76c50x-usb: avoid length underflow in at76_guess_freq()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: at76c50x-usb: avoid length underflow in at76_guess_freq()\n\nat76_guess_freq() checks only that the received frame is at least a bare\n802.11 header (24 bytes) before subtracting the fixed management-body\noffset:\n\n\tlen -= el_off;\n\nFor both beacon and probe response frames, el_off is 36. If the frame is\nshorter than el_off, subtracting it causes the calculated IE length to\nwrap. The length is eventually passed to cfg80211_find_elem_match() as a\nvery large unsigned value, so the element walk runs beyond the RX skb.\n\nThis path is reached from at76_rx_tasklet() while scanning. If the device\ndelivers a truncated beacon or probe response, the oversized IE length\ncauses an out-of-bounds read during scanning.\n\nSkip the IE lookup if the frame does not reach the variable elements,\nbefore subtracting el_off."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"cb831aff2f850f72bc5ff5ad77d0a70bb5a84061","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"4875680d1703f56afa6257ba30244f2fb44ed205","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"b406f33d234f98c8b310fdab5cbb492d85e98e49","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"e165a1d295e7e814e13b0f92c86e5d48309509ce","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"bcde7249d45f52f994a9872bedf45994472ade77","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"fb1b50ab699211e777dca5ccfb648788b6a6e519","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"f742d9c98b5c504fc9e6744eef13a721c2aea486","versionType":"git"},{"version":"1264b951463a00efebe1bb596499aaad620ec8af","status":"affected","lessThan":"61a799ffd1e5a4fd3702d547828b7ff3d161468e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/atmel/at76c50x-usb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.265","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/atmel/at76c50x-usb.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/cb831aff2f850f72bc5ff5ad77d0a70bb5a84061"},{"url":"https://git.kernel.org/stable/c/4875680d1703f56afa6257ba30244f2fb44ed205"},{"url":"https://git.kernel.org/stable/c/b406f33d234f98c8b310fdab5cbb492d85e98e49"},{"url":"https://git.kernel.org/stable/c/e165a1d295e7e814e13b0f92c86e5d48309509ce"},{"url":"https://git.kernel.org/stable/c/bcde7249d45f52f994a9872bedf45994472ade77"},{"url":"https://git.kernel.org/stable/c/fb1b50ab699211e777dca5ccfb648788b6a6e519"},{"url":"https://git.kernel.org/stable/c/f742d9c98b5c504fc9e6744eef13a721c2aea486"},{"url":"https://git.kernel.org/stable/c/61a799ffd1e5a4fd3702d547828b7ff3d161468e"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","baseScore":8.1,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The malformed frame is an over-the-air 802.11 beacon or probe response received by the at76c50x USB WLAN dongle and parsed in at76_rx_tasklet(); an attacker only needs to be within radio range of the victim, which is the adjacent-network (WiFi frame injection) case.\nAC:L - The attacker simply transmits a beacon/probe response whose body is shorter than the 36-byte fixed management offset with a valid FCS, and can repeat it continuously or answer the victim's probe requests during the routine scans that set priv->scanning, so triggering is reliable and fully attacker-timed.\nPR:N - No authentication, association, or any local privilege is required; the frame is parsed during scanning before any association or key exchange, so an entirely unauthenticated radio-range attacker reaches the bug.\nUI:N - Background and periodic scans are issued automatically by wpa_supplicant/NetworkManager without any user action, so no victim interaction is needed for the vulnerable path to run.\nS:U - The out-of-bounds read stays within the kernel's own memory and security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The underflowed length becomes ~4GB when widened to unsigned int, so the element walk reads far past the ~2.5KB RX skb slab object, and the out-of-bounds byte taken as el[2] is turned into rx_status.freq that userspace observes in scan results, allowing repeated frames to leak adjacent kernel heap contents.\nI:N - The defect is purely a read overrun; nothing outside the skb is written and the only attacker-influenced value is the reported channel/frequency, giving no memory-corruption or control-flow primitive.\nA:H - The unbounded element walk runs off the slab and can dereference unmapped memory while executing in tasklet/softirq context, producing a kernel oops or panic that the attacker can trigger repeatedly with injected frames."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-19T16:34:33.308Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.10.265"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.6.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.12.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.18.42"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"7.1.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-68373","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T15:47:30.765621Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","lang":"en","type":"CWE","description":"CWE-190 Integer Overflow or Wraparound"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T21:09:06.316Z"}}]}}}