{"api_version":"1","generated_at":"2026-08-22T22:42:16+00:00","cve":"CVE-2026-74610","urls":{"html":"https://cve.report/CVE-2026-74610","api":"https://cve.report/api/cve/CVE-2026-74610.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-74610","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-74610"},"summary":{"title":"tls: don't leave a full plaintext sk_msg ring unpushed","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntls: don't leave a full plaintext sk_msg ring unpushed\n\nWhen the copy path in tls_sw_sendmsg_locked() adds the fragment that fills\nthe plaintext sk_msg ring, it does not set full_record, so the record is\nleft full and unpushed.  A later splice() then adds to an already full\nring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps\nonto sg.start and the ring appears empty.  Fragments added after that\noverwrite live entries, and sg.size no longer matches what is reachable\nbetween sg.start and sg.end, so pushing the record runs the scatterwalk off\nthe end of the scatterlist.\n\nAn unprivileged user can trigger this on a loopback TCP socket with the\n\"tls\" ULP attached:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000008\n  RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0\n  Call Trace:\n   skcipher_walk_next+0x1d1/0x2c0\n   gcm_encrypt_aesni_avx+0x1e9/0x220\n   bpf_exec_tx_verdict+0x3bb/0x860\n   tls_sw_sendmsg+0xa1a/0xca0\n   __sys_sendto+0x1da/0x1f0\n\nSet full_record in the copy path when the ring becomes full, and push a\nrecord that is already full on entry to the sendmsg loop.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-22 16:16:33","updated_at":"2026-08-22 16:16:33"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/3c5f8f2aa57c647b83add4896aab64aac5fdedad","name":"https://git.kernel.org/stable/c/3c5f8f2aa57c647b83add4896aab64aac5fdedad","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f634289a0b557a197c5f37284b623cefedfe73d5","name":"https://git.kernel.org/stable/c/f634289a0b557a197c5f37284b623cefedfe73d5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7bca91d63341274e857f4aeaad54d229405e93dc","name":"https://git.kernel.org/stable/c/7bca91d63341274e857f4aeaad54d229405e93dc","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/aa8b14647721b5a4958712b35cf43e3125d47753","name":"https://git.kernel.org/stable/c/aa8b14647721b5a4958712b35cf43e3125d47753","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3fc5044796dd87b8d68be4207046f5ce2748174c","name":"https://git.kernel.org/stable/c/3fc5044796dd87b8d68be4207046f5ce2748174c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-74610","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-74610","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fe1e81d4f73b6cbaed4fcc476960d26770642842 aa8b14647721b5a4958712b35cf43e3125d47753 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fe1e81d4f73b6cbaed4fcc476960d26770642842 f634289a0b557a197c5f37284b623cefedfe73d5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fe1e81d4f73b6cbaed4fcc476960d26770642842 3fc5044796dd87b8d68be4207046f5ce2748174c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fe1e81d4f73b6cbaed4fcc476960d26770642842 3c5f8f2aa57c647b83add4896aab64aac5fdedad git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected fe1e81d4f73b6cbaed4fcc476960d26770642842 7bca91d63341274e857f4aeaad54d229405e93dc git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.5","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.5 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.152 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.104 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.45 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.9 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":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/tls/tls_sw.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"aa8b14647721b5a4958712b35cf43e3125d47753","status":"affected","version":"fe1e81d4f73b6cbaed4fcc476960d26770642842","versionType":"git"},{"lessThan":"f634289a0b557a197c5f37284b623cefedfe73d5","status":"affected","version":"fe1e81d4f73b6cbaed4fcc476960d26770642842","versionType":"git"},{"lessThan":"3fc5044796dd87b8d68be4207046f5ce2748174c","status":"affected","version":"fe1e81d4f73b6cbaed4fcc476960d26770642842","versionType":"git"},{"lessThan":"3c5f8f2aa57c647b83add4896aab64aac5fdedad","status":"affected","version":"fe1e81d4f73b6cbaed4fcc476960d26770642842","versionType":"git"},{"lessThan":"7bca91d63341274e857f4aeaad54d229405e93dc","status":"affected","version":"fe1e81d4f73b6cbaed4fcc476960d26770642842","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/tls/tls_sw.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.5"},{"lessThan":"6.5","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.152","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.104","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.45","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.9","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.6.152","versionStartIncluding":"6.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.104","versionStartIncluding":"6.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.45","versionStartIncluding":"6.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.9","versionStartIncluding":"6.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"6.5","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ntls: don't leave a full plaintext sk_msg ring unpushed\n\nWhen the copy path in tls_sw_sendmsg_locked() adds the fragment that fills\nthe plaintext sk_msg ring, it does not set full_record, so the record is\nleft full and unpushed.  A later splice() then adds to an already full\nring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps\nonto sg.start and the ring appears empty.  Fragments added after that\noverwrite live entries, and sg.size no longer matches what is reachable\nbetween sg.start and sg.end, so pushing the record runs the scatterwalk off\nthe end of the scatterlist.\n\nAn unprivileged user can trigger this on a loopback TCP socket with the\n\"tls\" ULP attached:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000008\n  RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0\n  Call Trace:\n   skcipher_walk_next+0x1d1/0x2c0\n   gcm_encrypt_aesni_avx+0x1e9/0x220\n   bpf_exec_tx_verdict+0x3bb/0x860\n   tls_sw_sendmsg+0xa1a/0xca0\n   __sys_sendto+0x1da/0x1f0\n\nSet full_record in the copy path when the ring becomes full, and push a\nrecord that is already full on entry to the sendmsg loop."}],"providerMetadata":{"dateUpdated":"2026-08-22T15:31:56.813Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/aa8b14647721b5a4958712b35cf43e3125d47753"},{"url":"https://git.kernel.org/stable/c/f634289a0b557a197c5f37284b623cefedfe73d5"},{"url":"https://git.kernel.org/stable/c/3fc5044796dd87b8d68be4207046f5ce2748174c"},{"url":"https://git.kernel.org/stable/c/3c5f8f2aa57c647b83add4896aab64aac5fdedad"},{"url":"https://git.kernel.org/stable/c/7bca91d63341274e857f4aeaad54d229405e93dc"}],"title":"tls: don't leave a full plaintext sk_msg ring unpushed","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-74610","datePublished":"2026-08-22T15:31:56.813Z","dateReserved":"2026-08-15T05:44:03.920Z","dateUpdated":"2026-08-22T15:31:56.813Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-22 16:16:33","lastModifiedDate":"2026-08-22 16:16:33","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"74610","Ordinal":"1","Title":"tls: don't leave a full plaintext sk_msg ring unpushed","CVE":"CVE-2026-74610","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"74610","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ntls: don't leave a full plaintext sk_msg ring unpushed\n\nWhen the copy path in tls_sw_sendmsg_locked() adds the fragment that fills\nthe plaintext sk_msg ring, it does not set full_record, so the record is\nleft full and unpushed.  A later splice() then adds to an already full\nring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps\nonto sg.start and the ring appears empty.  Fragments added after that\noverwrite live entries, and sg.size no longer matches what is reachable\nbetween sg.start and sg.end, so pushing the record runs the scatterwalk off\nthe end of the scatterlist.\n\nAn unprivileged user can trigger this on a loopback TCP socket with the\n\"tls\" ULP attached:\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000008\n  RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0\n  Call Trace:\n   skcipher_walk_next+0x1d1/0x2c0\n   gcm_encrypt_aesni_avx+0x1e9/0x220\n   bpf_exec_tx_verdict+0x3bb/0x860\n   tls_sw_sendmsg+0xa1a/0xca0\n   __sys_sendto+0x1da/0x1f0\n\nSet full_record in the copy path when the ring becomes full, and push a\nrecord that is already full on entry to the sendmsg loop.","Type":"Description","Title":"tls: don't leave a full plaintext sk_msg ring unpushed"}]}}}