CVE-2026-63925
macsec: fix replay protection at XPN lower-PN wrap
Description
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).
INFO
Published Date :
July 19, 2026, 4:17 p.m.
Last Modified :
July 27, 2026, 5:44 p.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel to include the macsec fix.
- Verify replay protection handles packet number wrap-around correctly.
- Ensure next_pn_halves is updated on packet number overflow.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-63925.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-63925 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-63925
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-63925 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-63925 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 20, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jul. 19, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': 'dd7306779c6ce1238f4cdc34f3c1f2246b854457', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': 'd15130461df388136b62a7b0ce9f66e7e2fa9ff1', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': '23c0e230eab397d7f68be2538790ac41d3bb91fd', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': '679e13a65e68a67c8b3c0467c02ee89157ec6f0f', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': '79495a1b0944fe31ffd54b54b00211b493590d62', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': '6d00f5c7e5ff7ec4795b7f5f8ed88bd346641652', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': 'd55acbe577db892b60547b6ef1c020b359331a6d', 'versionType': 'git'}, {'status': 'affected', 'version': 'a21ecf0e033807b976967286e6c392f48ee2049f', 'lessThan': 'e68842b3356471ba56c882209f324613dac47f64', 'versionType': 'git'}], 'programFiles': ['drivers/net/macsec.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.7'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.7', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.259', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.210', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.176', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.143', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.93', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.35', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.12', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/net/macsec.c'], 'defaultStatus': 'affected'}] Added Description 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). Added Reference https://git.kernel.org/stable/c/23c0e230eab397d7f68be2538790ac41d3bb91fd Added Reference https://git.kernel.org/stable/c/679e13a65e68a67c8b3c0467c02ee89157ec6f0f Added Reference https://git.kernel.org/stable/c/6d00f5c7e5ff7ec4795b7f5f8ed88bd346641652 Added Reference https://git.kernel.org/stable/c/79495a1b0944fe31ffd54b54b00211b493590d62 Added Reference https://git.kernel.org/stable/c/d15130461df388136b62a7b0ce9f66e7e2fa9ff1 Added Reference https://git.kernel.org/stable/c/d55acbe577db892b60547b6ef1c020b359331a6d Added Reference https://git.kernel.org/stable/c/dd7306779c6ce1238f4cdc34f3c1f2246b854457 Added Reference https://git.kernel.org/stable/c/e68842b3356471ba56c882209f324613dac47f64