{"id":"CVE-2026-68289","state":"PUBLISHED","title":"tipc: fix integer overflow in tipc_recvmsg() and tipc_recvstream()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: fix integer overflow in tipc_recvmsg() and tipc_recvstream()\n\nIn tipc_recvmsg(), the copy length is computed as:\n\n  copy = min_t(int, dlen - offset, buflen);\n\nbuflen is size_t but min_t(int, ...) casts it to int. When buflen\nexceeds INT_MAX (e.g. 0xFFFFFFFF via io_uring provided buffers), it\nwraps negative, wins the comparison, and the negative copy length\npropagates to simple_copy_to_iter() where int-to-size_t promotion\nmakes it SIZE_MAX, triggering a WARN_ON. tipc_recvstream() has the\nsame pattern.\n\n  Kernel panic - not syncing: kernel: panic_on_warn set ...\n  RIP: 0010:simple_copy_to_iter+0x9e/0xd0 (net/core/datagram.c:521)\n  Call Trace:\n   __skb_datagram_iter+0x123/0x8b0 (net/core/datagram.c:402)\n   skb_copy_datagram_iter+0x77/0x1a0 (net/core/datagram.c:534)\n   tipc_recvmsg+0x3d7/0xe80 (net/tipc/socket.c:1934)\n   io_recvmsg+0x47e/0xda0\n\nFix by changing min_t(int, ...) to min_t(size_t, ...) in both\nfunctions. The result is always <= (dlen - offset), which is bounded\nby TIPC maximum message size (0x1ffff bytes), so the implicit\nnarrowing on assignment to int copy is always safe.","publishedAt":"2026-08-10T12:02:22.101Z","updatedAt":"2026-10-03T10:55:45.132Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"9fd4f92671146b068809b6c34b50346cb30cf8f7","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"93580911f02d1f4a506ec0a6fc4354140c53ffe8","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"1b6066313b9b8fac870483bf7a26d6bd56579747","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"7364014fdc289225229eb08de8bcbf4580e78e4d","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"fe9bf32bb18f2d35789d4960fb007d1059bbaa38","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"47f42ff521b4eeb46e82f9a46a4783a99f7570d7","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/tipc/socket.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/tipc/socket.c"]}],"references":["https://git.kernel.org/stable/c/9fd4f92671146b068809b6c34b50346cb30cf8f7","https://git.kernel.org/stable/c/93580911f02d1f4a506ec0a6fc4354140c53ffe8","https://git.kernel.org/stable/c/1b6066313b9b8fac870483bf7a26d6bd56579747","https://git.kernel.org/stable/c/7364014fdc289225229eb08de8bcbf4580e78e4d","https://git.kernel.org/stable/c/fe9bf32bb18f2d35789d4960fb007d1059bbaa38","https://git.kernel.org/stable/c/47f42ff521b4eeb46e82f9a46a4783a99f7570d7"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68289.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68289","state":"PUBLISHED","datePublished":"2026-08-10T12:02:22.101Z","dateUpdated":"2026-10-03T10:55:45.132Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.380Z"},"containers":{"cna":{"title":"tipc: fix integer overflow in tipc_recvmsg() and tipc_recvstream()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: fix integer overflow in tipc_recvmsg() and tipc_recvstream()\n\nIn tipc_recvmsg(), the copy length is computed as:\n\n  copy = min_t(int, dlen - offset, buflen);\n\nbuflen is size_t but min_t(int, ...) casts it to int. When buflen\nexceeds INT_MAX (e.g. 0xFFFFFFFF via io_uring provided buffers), it\nwraps negative, wins the comparison, and the negative copy length\npropagates to simple_copy_to_iter() where int-to-size_t promotion\nmakes it SIZE_MAX, triggering a WARN_ON. tipc_recvstream() has the\nsame pattern.\n\n  Kernel panic - not syncing: kernel: panic_on_warn set ...\n  RIP: 0010:simple_copy_to_iter+0x9e/0xd0 (net/core/datagram.c:521)\n  Call Trace:\n   __skb_datagram_iter+0x123/0x8b0 (net/core/datagram.c:402)\n   skb_copy_datagram_iter+0x77/0x1a0 (net/core/datagram.c:534)\n   tipc_recvmsg+0x3d7/0xe80 (net/tipc/socket.c:1934)\n   io_recvmsg+0x47e/0xda0\n\nFix by changing min_t(int, ...) to min_t(size_t, ...) in both\nfunctions. The result is always <= (dlen - offset), which is bounded\nby TIPC maximum message size (0x1ffff bytes), so the implicit\nnarrowing on assignment to int copy is always safe."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"9fd4f92671146b068809b6c34b50346cb30cf8f7","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"93580911f02d1f4a506ec0a6fc4354140c53ffe8","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"1b6066313b9b8fac870483bf7a26d6bd56579747","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"7364014fdc289225229eb08de8bcbf4580e78e4d","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"fe9bf32bb18f2d35789d4960fb007d1059bbaa38","versionType":"git"},{"version":"e9f8b10101c6da3ab000a2fb17162374c9bd2c69","status":"affected","lessThan":"47f42ff521b4eeb46e82f9a46a4783a99f7570d7","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/tipc/socket.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"6.1.189","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/tipc/socket.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/9fd4f92671146b068809b6c34b50346cb30cf8f7"},{"url":"https://git.kernel.org/stable/c/93580911f02d1f4a506ec0a6fc4354140c53ffe8"},{"url":"https://git.kernel.org/stable/c/1b6066313b9b8fac870483bf7a26d6bd56579747"},{"url":"https://git.kernel.org/stable/c/7364014fdc289225229eb08de8bcbf4580e78e4d"},{"url":"https://git.kernel.org/stable/c/fe9bf32bb18f2d35789d4960fb007d1059bbaa38"},{"url":"https://git.kernel.org/stable/c/47f42ff521b4eeb46e82f9a46a4783a99f7570d7"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-03T10:55:45.132Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.12.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.1.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}