{"id":"CVE-2026-63828","state":"PUBLISHED","title":"apparmor: mediate the implicit connect of TCP fast open sendmsg","description":"In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: mediate the implicit connect of TCP fast open sendmsg\n\nsendmsg()/sendto() with MSG_FASTOPEN is a combination of connect(2) and\nwrite(2): it opens the connection in the SYN. apparmor_socket_sendmsg()\nonly checks AA_MAY_SEND, so a profile that grants send but denies connect\nlets a confined task open an outbound TCP/MPTCP connection that connect(2)\nwould have refused, bypassing connect mediation.\n\nMediate the implicit connect when MSG_FASTOPEN is set and a destination\nis supplied. Add it to apparmor_socket_sendmsg() (not the shared\naa_sock_msg_perm() helper, which recvmsg also uses) and call aa_sk_perm()\ndirectly, mirroring the selinux and tomoyo fixes. sk_is_tcp() does not\ncover MPTCP fast open, so the SOCK_STREAM/IPPROTO_MPTCP arm is explicit.","publishedAt":"2026-07-19T12:02:22.644Z","updatedAt":"2026-08-17T04:51:36.839Z","severity":{"score":8.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"a16714e7cf2baa98ba2efddd5d6cbac641f4e76b","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"20383429b56974507c465d016e5238b189f7a246","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"7f57428ce00891d26b0f087ef754a4d820ec83aa","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"faea60deaa05c76f0772650f42eafde12bd39d93","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"07b71c342382b854ab8030b244aeab6a7228ad7d","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"4a69b83045d3195d5b9a9b053ad840ddb2998b4e","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"45ebb934ea50b436ce49b2f159f090dab0d7fa28","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"4d587cd8a72155089a627130bbd4716ec0856e21","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/apparmor/lsm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.6","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.177","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.144","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.95","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.38","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.3","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":["security/apparmor/lsm.c"]}],"references":["https://git.kernel.org/stable/c/a16714e7cf2baa98ba2efddd5d6cbac641f4e76b","https://git.kernel.org/stable/c/20383429b56974507c465d016e5238b189f7a246","https://git.kernel.org/stable/c/7f57428ce00891d26b0f087ef754a4d820ec83aa","https://git.kernel.org/stable/c/faea60deaa05c76f0772650f42eafde12bd39d93","https://git.kernel.org/stable/c/07b71c342382b854ab8030b244aeab6a7228ad7d","https://git.kernel.org/stable/c/4a69b83045d3195d5b9a9b053ad840ddb2998b4e","https://git.kernel.org/stable/c/45ebb934ea50b436ce49b2f159f090dab0d7fa28","https://git.kernel.org/stable/c/4d587cd8a72155089a627130bbd4716ec0856e21"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/63xxx/CVE-2026-63828.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-63828","state":"PUBLISHED","datePublished":"2026-07-19T12:02:22.644Z","dateUpdated":"2026-08-17T04:51:36.839Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.014Z"},"containers":{"cna":{"title":"apparmor: mediate the implicit connect of TCP fast open sendmsg","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: mediate the implicit connect of TCP fast open sendmsg\n\nsendmsg()/sendto() with MSG_FASTOPEN is a combination of connect(2) and\nwrite(2): it opens the connection in the SYN. apparmor_socket_sendmsg()\nonly checks AA_MAY_SEND, so a profile that grants send but denies connect\nlets a confined task open an outbound TCP/MPTCP connection that connect(2)\nwould have refused, bypassing connect mediation.\n\nMediate the implicit connect when MSG_FASTOPEN is set and a destination\nis supplied. Add it to apparmor_socket_sendmsg() (not the shared\naa_sock_msg_perm() helper, which recvmsg also uses) and call aa_sk_perm()\ndirectly, mirroring the selinux and tomoyo fixes. sk_is_tcp() does not\ncover MPTCP fast open, so the SOCK_STREAM/IPPROTO_MPTCP arm is explicit."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"a16714e7cf2baa98ba2efddd5d6cbac641f4e76b","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"20383429b56974507c465d016e5238b189f7a246","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"7f57428ce00891d26b0f087ef754a4d820ec83aa","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"faea60deaa05c76f0772650f42eafde12bd39d93","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"07b71c342382b854ab8030b244aeab6a7228ad7d","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"4a69b83045d3195d5b9a9b053ad840ddb2998b4e","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"45ebb934ea50b436ce49b2f159f090dab0d7fa28","versionType":"git"},{"version":"cf60af03ca4e71134206809ea892e49b92a88896","status":"affected","lessThan":"4d587cd8a72155089a627130bbd4716ec0856e21","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/apparmor/lsm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.6","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.177","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.144","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.95","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.38","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.3","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":["security/apparmor/lsm.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/a16714e7cf2baa98ba2efddd5d6cbac641f4e76b"},{"url":"https://git.kernel.org/stable/c/20383429b56974507c465d016e5238b189f7a246"},{"url":"https://git.kernel.org/stable/c/7f57428ce00891d26b0f087ef754a4d820ec83aa"},{"url":"https://git.kernel.org/stable/c/faea60deaa05c76f0772650f42eafde12bd39d93"},{"url":"https://git.kernel.org/stable/c/07b71c342382b854ab8030b244aeab6a7228ad7d"},{"url":"https://git.kernel.org/stable/c/4a69b83045d3195d5b9a9b053ad840ddb2998b4e"},{"url":"https://git.kernel.org/stable/c/45ebb934ea50b436ce49b2f159f090dab0d7fa28"},{"url":"https://git.kernel.org/stable/c/4d587cd8a72155089a627130bbd4716ec0856e21"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N","baseScore":8.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation requires a confined local process to invoke sendmsg(2)/sendto(2) with MSG_FASTOPEN; the vulnerable AppArmor LSM hook runs on the syscall path before TCP fast-open performs its implicit connect.\nAC:L - Any confined task that already has send permission can reliably trigger the bypass with a single sendmsg/sendto call using MSG_FASTOPEN and a destination address, with no race or special victim state required beyond TCP Fast Open client support.\nPR:L - The attacker must be an unprivileged process confined by an AppArmor profile that grants network send but denies connect (e.g., hardened Snap/sandboxed service profiles on Ubuntu); no real root or capabilities beyond normal confined-user execution are needed.\nUI:N - No victim interaction is required; the confined attacker process directly issues the bypassing syscall without needing another user or administrator to perform any action.\nS:C - Successful exploitation crosses the AppArmor confinement boundary, allowing a sandboxed task to establish outbound TCP/MPTCP connections that connect(2) mediation would have blocked, escaping the intended network policy scope.\nC:H - Bypassing connect mediation lets a confined process open TCP/MPTCP sessions to destinations policy forbids and read arbitrary response data from those services (internal APIs, metadata endpoints, C2 servers), constituting unauthorized information disclosure.\nI:H - The bypass enables unauthorized outbound connection establishment and transmission of arbitrary application data (including SYN-cookie data) to hosts explicitly denied by the AppArmor connect rule, violating integrity of the confinement policy.\nA:N - This is a pure LSM policy-bypass flaw with no kernel memory corruption, panic, oops, hang, or resource exhaustion; exploitation does not impact system availability."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:51:36.839Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.1.177"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.6.144"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.12.95"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"6.18.38"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"7.1.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.6","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}