{"api_version":"1","generated_at":"2026-08-22T16:27:00+00:00","cve":"CVE-2026-68342","urls":{"html":"https://cve.report/CVE-2026-68342","api":"https://cve.report/api/cve/CVE-2026-68342.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-68342","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-68342"},"summary":{"title":"ovpn: avoid putting unrelated P2P peer on socket release","description":"In the Linux kernel, the following vulnerability has been resolved:\n\novpn: avoid putting unrelated P2P peer on socket release\n\novpn_peer_release_p2p() is called when an OVPN UDP socket is being\ndestroyed. It checks the currently published P2P peer and releases it only\nif that peer still uses the socket being destroyed.\n\nA peer replacement can publish a new peer before the old UDP socket is\ndestroyed. When the old socket destruction path runs afterwards,\novpn_peer_release_p2p() observes the new peer through ovpn->peer. Since the\nnew peer uses a different socket, the function takes the socket mismatch\nbranch.\n\nThat branch still calls ovpn_peer_put(peer). At this point, however, peer\nis the currently published replacement peer, not the peer associated with\nthe socket being destroyed. Dropping its reference can free it while\novpn->peer still points to it, leading to later use-after-free accesses\nfrom the peer and socket cleanup paths.\n\nKASAN reports this as a slab-use-after-free on the kmalloc-1k ovpn_peer\nobject. In the reproducer, the object is allocated from ovpn_peer_new() via\novpn_nl_peer_new_doit(), and freed through ovpn_peer_release_rcu() from RCU\ncallback processing. Observed access sites include ovpn_peer_remove(),\novpn_socket_release(), ovpn_nl_peer_del_notify(), and unlock_ovpn().\n\nFix this by returning from the socket mismatch branch without putting the\npeer.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-10 13:20:24","updated_at":"2026-08-17 06:17:42"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/016a50379d17b886d12a4efa5211a418e035fe70","name":"https://git.kernel.org/stable/c/016a50379d17b886d12a4efa5211a418e035fe70","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b52c5103f64ee825996ca1ab8df7283cde8c5f86","name":"https://git.kernel.org/stable/c/b52c5103f64ee825996ca1ab8df7283cde8c5f86","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c5bf6b39be235ef578af4d39872f0c68cda3b937","name":"https://git.kernel.org/stable/c/c5bf6b39be235ef578af4d39872f0c68cda3b937","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-68342","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68342","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f6226ae7a0cd47aaa9175aca6a1e19600f884cbf c5bf6b39be235ef578af4d39872f0c68cda3b937 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f6226ae7a0cd47aaa9175aca6a1e19600f884cbf 016a50379d17b886d12a4efa5211a418e035fe70 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f6226ae7a0cd47aaa9175aca6a1e19600f884cbf b52c5103f64ee825996ca1ab8df7283cde8c5f86 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.16","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.16 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.42 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.6 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"68342","cve":"CVE-2026-68342","epss":"0.001770000","percentile":"0.075150000","score_date":"2026-08-17","updated_at":"2026-08-18 00:11:47"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/net/ovpn/peer.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"c5bf6b39be235ef578af4d39872f0c68cda3b937","status":"affected","version":"f6226ae7a0cd47aaa9175aca6a1e19600f884cbf","versionType":"git"},{"lessThan":"016a50379d17b886d12a4efa5211a418e035fe70","status":"affected","version":"f6226ae7a0cd47aaa9175aca6a1e19600f884cbf","versionType":"git"},{"lessThan":"b52c5103f64ee825996ca1ab8df7283cde8c5f86","status":"affected","version":"f6226ae7a0cd47aaa9175aca6a1e19600f884cbf","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/net/ovpn/peer.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.16"},{"lessThan":"6.16","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.42","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.42","versionStartIncluding":"6.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.6","versionStartIncluding":"6.16","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"6.16","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\novpn: avoid putting unrelated P2P peer on socket release\n\novpn_peer_release_p2p() is called when an OVPN UDP socket is being\ndestroyed. It checks the currently published P2P peer and releases it only\nif that peer still uses the socket being destroyed.\n\nA peer replacement can publish a new peer before the old UDP socket is\ndestroyed. When the old socket destruction path runs afterwards,\novpn_peer_release_p2p() observes the new peer through ovpn->peer. Since the\nnew peer uses a different socket, the function takes the socket mismatch\nbranch.\n\nThat branch still calls ovpn_peer_put(peer). At this point, however, peer\nis the currently published replacement peer, not the peer associated with\nthe socket being destroyed. Dropping its reference can free it while\novpn->peer still points to it, leading to later use-after-free accesses\nfrom the peer and socket cleanup paths.\n\nKASAN reports this as a slab-use-after-free on the kmalloc-1k ovpn_peer\nobject. In the reproducer, the object is allocated from ovpn_peer_new() via\novpn_nl_peer_new_doit(), and freed through ovpn_peer_release_rcu() from RCU\ncallback processing. Observed access sites include ovpn_peer_remove(),\novpn_socket_release(), ovpn_nl_peer_del_notify(), and unlock_ovpn().\n\nFix this by returning from the socket mismatch branch without putting the\npeer."}],"providerMetadata":{"dateUpdated":"2026-08-17T05:03:42.312Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/c5bf6b39be235ef578af4d39872f0c68cda3b937"},{"url":"https://git.kernel.org/stable/c/016a50379d17b886d12a4efa5211a418e035fe70"},{"url":"https://git.kernel.org/stable/c/b52c5103f64ee825996ca1ab8df7283cde8c5f86"}],"title":"ovpn: avoid putting unrelated P2P peer on socket release","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-68342","datePublished":"2026-08-10T12:03:18.852Z","dateReserved":"2026-07-30T09:28:09.384Z","dateUpdated":"2026-08-17T05:03:42.312Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-10 13:20:24","lastModifiedDate":"2026-08-17 06:17:42","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"68342","Ordinal":"1","Title":"ovpn: avoid putting unrelated P2P peer on socket release","CVE":"CVE-2026-68342","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"68342","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\novpn: avoid putting unrelated P2P peer on socket release\n\novpn_peer_release_p2p() is called when an OVPN UDP socket is being\ndestroyed. It checks the currently published P2P peer and releases it only\nif that peer still uses the socket being destroyed.\n\nA peer replacement can publish a new peer before the old UDP socket is\ndestroyed. When the old socket destruction path runs afterwards,\novpn_peer_release_p2p() observes the new peer through ovpn->peer. Since the\nnew peer uses a different socket, the function takes the socket mismatch\nbranch.\n\nThat branch still calls ovpn_peer_put(peer). At this point, however, peer\nis the currently published replacement peer, not the peer associated with\nthe socket being destroyed. Dropping its reference can free it while\novpn->peer still points to it, leading to later use-after-free accesses\nfrom the peer and socket cleanup paths.\n\nKASAN reports this as a slab-use-after-free on the kmalloc-1k ovpn_peer\nobject. In the reproducer, the object is allocated from ovpn_peer_new() via\novpn_nl_peer_new_doit(), and freed through ovpn_peer_release_rcu() from RCU\ncallback processing. Observed access sites include ovpn_peer_remove(),\novpn_socket_release(), ovpn_nl_peer_del_notify(), and unlock_ovpn().\n\nFix this by returning from the socket mismatch branch without putting the\npeer.","Type":"Description","Title":"ovpn: avoid putting unrelated P2P peer on socket release"}]}}}