CVE-2026-13734

Source
https://cve.org/CVERecord?id=CVE-2026-13734
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-13734.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-13734
Aliases
  • GHSA-x7q7-fjx9-4vj2
Published
2026-08-28T20:38:49.617Z
Modified
2026-08-30T08:13:43.687240Z
Severity
  • 6.5 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H CVSS Calculator
Summary
Zephyr WireGuard mutates peer state before anti-replay check, enabling capture-replay endpoint hijack
Details

Zephyr's WireGuard VPN data-plane receive handler wgprocessdatamessage() in subsys/net/lib/wireguard/wgcrypto.c validated the anti-replay counter too late. After AEAD decryption of a MESSAGETRANSPORTDATA packet succeeded, the code committed several peer-state changes — updatepeeraddr() (endpoint roaming update), the keypair->lastrx/peer->lastrx liveness timers, and keypairupdate() (promote next→current and destroy the previous keypair) — and only afterward called wgcheck_replay(). On a replayed packet the replay check returned -EINVAL, but none of the preceding mutations were rolled back.

The AEAD tag authenticates content but not freshness, so a replayed-but-authentic transport packet decrypts correctly. An attacker who captures one valid ciphertext off the wire (an on-path or shared-medium observer) can re-inject it from an arbitrary spoofed source address. Reaching the handler requires no credentials: it is driven directly from inbound UDP datagrams via the dispatch in subsys/net/lib/wireguard/wg.c.

Because the state mutations committed before the replay check, the replay repoints the peer endpoint to the attacker-chosen source address (roaming hijack), redirecting the victim's subsequent outbound tunnel traffic until the legitimate peer's next packet re-corrects it; it also prematurely destroys the previous keypair and refreshes the RX liveness timer. The tunnel payload stays encrypted under the session keypair, so this is an integrity/availability impact (traffic redirection and session disruption), not payload disclosure. The fix moves wgcheckreplay() to immediately after a successful decrypt, before any peer-state mutation, matching the WireGuard specification and the Linux reference implementation.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/13xxx/CVE-2026-13734.json",
    "cwe_ids": [
        "CWE-294"
    ],
    "cna_assigner": "zephyr"
}
References

Affected packages

Git / github.com/zephyrproject-rtos/zephyr

Affected ranges

Type
GIT
Repo
https://github.com/zephyrproject-rtos/zephyr
Events
Database specific
Show details
{
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "4.4.0"
        },
        {
            "fixed": "4.4.2"
        }
    ]
}

Affected versions

v4.*
v4.4.0

Database specific

vanir_signatures
[
    {
        "id": "CVE-2026-13734-75358885",
        "target": {
            "function": "wg_process_data_message",
            "file": "subsys/net/lib/wireguard/wg_crypto.c"
        },
        "deprecated": false,
        "digest": {
            "function_hash": "149676935219164376109633264426281758290",
            "length": 4227.0
        },
        "signature_version": "v1",
        "source": "https://github.com/zephyrproject-rtos/zephyr/commit/260c32ef9a89824bd25e17170e77aa4b98c84069",
        "signature_type": "Function"
    },
    {
        "id": "CVE-2026-13734-f75d4a9b",
        "target": {
            "file": "subsys/net/lib/wireguard/wg_crypto.c"
        },
        "deprecated": false,
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "103117181195481898046377296938137561102",
                "200193105173350827086555565201390309278",
                "120016397421143916966133274059705253598",
                "183591915554302493201444779430703257621",
                "94412807766288332342251957609800720664",
                "264567372987153853044681618809087079948",
                "46389748866110386258952112316894761297",
                "189112168022437083384529095691058172847",
                "275938397972107350733286108778580483668",
                "63774273026178763839172612472165551893",
                "210339593483420656622908764248730391181"
            ]
        },
        "signature_version": "v1",
        "source": "https://github.com/zephyrproject-rtos/zephyr/commit/260c32ef9a89824bd25e17170e77aa4b98c84069",
        "signature_type": "Line"
    }
]
source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-13734.json"
vanir_signatures_modified
"2026-08-30T08:13:43Z"