# CVE-2026-46193: xfrm: ah: account for ESN high bits in async callbacks

Status: published. Published: 2026-05-28. Updated: 2026-11-10.

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

xfrm: ah: account for ESN high bits in async callbacks

AH allocates its temporary auth/ICV layout differently when ESN is enabled:
the async ahash setup appends a 4-byte seqhi slot before the ICV or
auth_data area, but the async completion callbacks still reconstruct the
temporary layout as if seqhi were absent.

With an async AH implementation selected, that makes AH copy or compare
the wrong bytes on both the IPv4 and IPv6 paths. In UML repro on IPv4 AH
with ESN and forced async hmac(sha1), ping fails with 100% packet loss,
and the callback logs show the pre-fix drift:

  ah4 output_done: esn=1 err=0 icv_off=20 expected_off=24
  ah4 input_done: esn=1 auth_off=20 expected_auth_off=24 icv_off=32 expected_icv_off=36

Reconstruct the callback-side layout the same way the setup path built it
by skipping the ESN seqhi slot before locating the saved auth_data or ICV.
Per RFC 4302, the ESN high-order 32 bits participate in the AH ICV
computation, so the async callbacks must account for the seqhi slot.

Post-fix, the same IPv4 AH+ESN+forced-async-hmac(sha1) UML repro shows
the corrected offset (ah4 output_done: esn=1 err=0 icv_off=24
expected_off=24) and ping succeeds; net/ipv4/ah4.o and net/ipv6/ah6.o
build clean at W=1. IPv6 AH+ESN was not exercised at runtime, and the
change has not been tested against a real async hardware AH engine.

## Remediation

- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) — https://git.kernel.org/stable/c/0555d4f526232b3c9e3afbcd490c0c0793aefec6
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) — https://git.kernel.org/stable/c/2ffaa7a94f9a4d22724364a1821735a0231d9f8d
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) — https://git.kernel.org/stable/c/729899a2aa8bda7844be0cdcd3b470f11b912eda
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) — https://git.kernel.org/stable/c/7db99a09b3bc87268287bc7ab5f2e7f382b5ad87
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) — https://git.kernel.org/stable/c/ec54093e6a8f87e800bb6aa15eb7fc1e33faa524

## Affected products and versions

- Linux / Linux: ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < ec406c26c97594124e79d14516b729a8d5dced62 (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < 1dae77078ceb4bab833f7a4935f05c5b8c97b9ba (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < 0555d4f526232b3c9e3afbcd490c0c0793aefec6 (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < 729899a2aa8bda7844be0cdcd3b470f11b912eda (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < 7db99a09b3bc87268287bc7ab5f2e7f382b5ad87 (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < 2ffaa7a94f9a4d22724364a1821735a0231d9f8d (affected, git); ≥ d4d573d0334d07341beffdcf97e2b85d3955d8ae; < ec54093e6a8f87e800bb6aa15eb7fc1e33faa524 (affected, git). Source: CNA: Linux
- Linux / Linux: 3.15 (affected); ≥ 0; < 3.15 (unaffected, semver); ≥ 5.15.210; ≤ 5.15.* (unaffected, semver); ≥ 6.1.176; ≤ 6.1.* (unaffected, semver); ≥ 6.6.140; ≤ 6.6.* (unaffected, semver); ≥ 6.12.88; ≤ 6.12.* (unaffected, semver); ≥ 6.18.30; ≤ 6.18.* (unaffected, semver); ≥ 7.0.7; ≤ 7.0.* (unaffected, semver); ≥ 7.1; ≤ * (unaffected, original_commit_for_fix). Source: CNA: Linux
- Siemens / SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0): ≥ V3.1.6; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0): ≥ V3.1.7; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0): ≥ V3.1.6; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0): ≥ V3.1.7; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0): ≥ V3.1.6; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0): ≥ V3.1.7; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0): ≥ V3.1.6; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0): ≥ V3.1.7; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIMATIC S7-1500 TM MFP - GNU/Linux subsystem: ≥ 0; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0): ≥ V3.1.6; < * (affected, custom). Source: ADP: siemens-SADP
- Siemens / SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0): ≥ V3.1.7; < * (affected, custom). Source: ADP: siemens-SADP

## NVD configuration conditions

Affected CPE matches depend on the following AND/OR and negation conditions:

```json
[
  {
    "negate": false,
    "nodes": [
      {
        "cpeMatch": [
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
            "versionEndExcluding": "6.6.140",
            "versionStartIncluding": "3.15",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
            "versionEndExcluding": "6.12.88",
            "versionStartIncluding": "6.7",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
            "versionEndExcluding": "6.18.30",
            "versionStartIncluding": "6.13",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
            "versionEndExcluding": "7.0.7",
            "versionStartIncluding": "6.19",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*",
            "vulnerable": true
          },
          {
            "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*",
            "vulnerable": true
          }
        ],
        "negate": false,
        "operator": "OR"
      }
    ],
    "operator": "OR"
  }
]
```

## Severity and prioritization

- CVSS 3.1: 5.5 (medium); CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H; source: NVD: nvd@nist.gov

- CISA KEV: No listing in collected sources

- EPSS: 0.14% as of 2026-11-09; percentile 3.20%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: Not reported

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://git.kernel.org/stable/c/ec406c26c97594124e79d14516b729a8d5dced62 (CNA: Linux)

- https://git.kernel.org/stable/c/1dae77078ceb4bab833f7a4935f05c5b8c97b9ba (CNA: Linux)

- https://git.kernel.org/stable/c/0555d4f526232b3c9e3afbcd490c0c0793aefec6 (CNA: Linux)

- https://git.kernel.org/stable/c/729899a2aa8bda7844be0cdcd3b470f11b912eda (CNA: Linux)

- https://git.kernel.org/stable/c/7db99a09b3bc87268287bc7ab5f2e7f382b5ad87 (CNA: Linux)

- https://git.kernel.org/stable/c/2ffaa7a94f9a4d22724364a1821735a0231d9f8d (CNA: Linux)

- https://git.kernel.org/stable/c/ec54093e6a8f87e800bb6aa15eb7fc1e33faa524 (CNA: Linux)

- https://cert-portal.siemens.com/productcert/html/ssa-019113.html (ADP: siemens-SADP)

- https://cert-portal.siemens.com/productcert/html/ssa-457936.html (ADP: siemens-SADP)

- https://cert-portal.siemens.com/productcert/html/ssa-784472.html (ADP: siemens-SADP)

- https://git.kernel.org/stable/c/0555d4f526232b3c9e3afbcd490c0c0793aefec6 (416baaa9-dc9f-4396-8d5f-8c081fb06d67; Patch)

- https://git.kernel.org/stable/c/1dae77078ceb4bab833f7a4935f05c5b8c97b9ba (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/2ffaa7a94f9a4d22724364a1821735a0231d9f8d (416baaa9-dc9f-4396-8d5f-8c081fb06d67; Patch)

- https://git.kernel.org/stable/c/729899a2aa8bda7844be0cdcd3b470f11b912eda (416baaa9-dc9f-4396-8d5f-8c081fb06d67; Patch)

- https://git.kernel.org/stable/c/7db99a09b3bc87268287bc7ab5f2e7f382b5ad87 (416baaa9-dc9f-4396-8d5f-8c081fb06d67; Patch)

- https://git.kernel.org/stable/c/ec406c26c97594124e79d14516b729a8d5dced62 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/ec54093e6a8f87e800bb6aa15eb7fc1e33faa524 (416baaa9-dc9f-4396-8d5f-8c081fb06d67; Patch)

- https://cert-portal.siemens.com/productcert/html/ssa-019113.html (0b142b55-0307-4c5a-b3c9-f314f3fb7c5e)

- https://cert-portal.siemens.com/productcert/html/ssa-457936.html (0b142b55-0307-4c5a-b3c9-f314f3fb7c5e)

- https://cert-portal.siemens.com/productcert/html/ssa-784472.html (0b142b55-0307-4c5a-b3c9-f314f3fb7c5e)

## Provenance

- CNA: Linux: https://www.cve.org/CVERecord?id=CVE-2026-46193; retrieved 2026-11-10; source updated 2026-11-10

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-46193; retrieved 2026-11-06; source updated 2026-11-06

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-46193; retrieved 2026-11-10; source updated Not reported

Revision: 8a67ff50aafb70e3d580a452f6a9b11a2092bf80398e2b91460b1313054c1518

Canonical: https://y2.dev/cve/CVE-2026-46193

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.