---
id: CVE-2026-63925
title: 'macsec: fix replay protection at XPN lower-PN wrap'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  macsec: fix replay protection at XPN lower-PN wrap

  In macsec_post_decrypt(), when pn is U32_MAX, pn + 1 overflows u32 to 0
  and the first branch never fires. If next_pn…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    dd7306779c6ce1238f4cdc34f3c1f2246b854457
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    d15130461df388136b62a7b0ce9f66e7e2fa9ff1
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    23c0e230eab397d7f68be2538790ac41d3bb91fd
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    679e13a65e68a67c8b3c0467c02ee89157ec6f0f
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    79495a1b0944fe31ffd54b54b00211b493590d62
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    6d00f5c7e5ff7ec4795b7f5f8ed88bd346641652
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    d55acbe577db892b60547b6ef1c020b359331a6d
  - >-
    Linux >= a21ecf0e033807b976967286e6c392f48ee2049f <
    e68842b3356471ba56c882209f324613dac47f64
  - Linux 5.7
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-16T15:33:35.580266Z'
published: '2026-07-19'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:42:12.466Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-63925'
references:
  - url: 'https://git.kernel.org/stable/c/dd7306779c6ce1238f4cdc34f3c1f2246b854457'
  - url: 'https://git.kernel.org/stable/c/d15130461df388136b62a7b0ce9f66e7e2fa9ff1'
  - url: 'https://git.kernel.org/stable/c/23c0e230eab397d7f68be2538790ac41d3bb91fd'
  - url: 'https://git.kernel.org/stable/c/679e13a65e68a67c8b3c0467c02ee89157ec6f0f'
  - url: 'https://git.kernel.org/stable/c/79495a1b0944fe31ffd54b54b00211b493590d62'
  - url: 'https://git.kernel.org/stable/c/6d00f5c7e5ff7ec4795b7f5f8ed88bd346641652'
  - url: 'https://git.kernel.org/stable/c/d55acbe577db892b60547b6ef1c020b359331a6d'
  - url: 'https://git.kernel.org/stable/c/e68842b3356471ba56c882209f324613dac47f64'
tags:
  - cve.org
epss: 0.00345
epssPercentile: 0.26504
ingestedAt: '2026-10-16T17:24:46.777Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

macsec: fix replay protection at XPN lower-PN wrap

In macsec_post_decrypt(), when pn is U32_MAX, pn + 1 overflows u32 to 0
and the first branch never fires. If next_pn_halves.lower is also in the
upper half, pn_same_half(pn, lower) is true and the XPN else-if does not
fire either, leaving next_pn_halves unchanged. An attacker that captures
the legitimate frame carrying pn == 0xFFFFFFFF on an XPN association
can then replay it indefinitely, since lowest_pn never rises above
the captured pn and macsec_decrypt() reconstructs the same IV.

Extend the XPN else-if to also fire when pn + 1 wraps to 0, so receipt
of pn == U32_MAX advances next_pn_halves to (upper + 1, 0).

## Affected

- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < dd7306779c6ce1238f4cdc34f3c1f2246b854457`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < d15130461df388136b62a7b0ce9f66e7e2fa9ff1`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < 23c0e230eab397d7f68be2538790ac41d3bb91fd`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < 679e13a65e68a67c8b3c0467c02ee89157ec6f0f`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < 79495a1b0944fe31ffd54b54b00211b493590d62`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < 6d00f5c7e5ff7ec4795b7f5f8ed88bd346641652`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < d55acbe577db892b60547b6ef1c020b359331a6d`
- `Linux >= a21ecf0e033807b976967286e6c392f48ee2049f < e68842b3356471ba56c882209f324613dac47f64`
- `Linux 5.7`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
