Description
In the Linux kernel, the following vulnerability has been resolved: apparmor: mediate the implicit connect of TCP fast open sendmsg sendmsg()/sendto() with MSG_FASTOPEN is a combination of connect(2) and write(2): it opens the connection in the SYN. apparmor_socket_sendmsg() only checks AA_MAY_SEND, so a profile that grants send but denies connect lets a confined task open an outbound TCP/MPTCP connection that connect(2) would have refused, bypassing connect mediation. Mediate the implicit connect when MSG_FASTOPEN is set and a destination is supplied. Add it to apparmor_socket_sendmsg() (not the shared aa_sock_msg_perm() helper, which recvmsg also uses) and call aa_sk_perm() directly, mirroring the selinux and tomoyo fixes. sk_is_tcp() does not cover MPTCP fast open, so the SOCK_STREAM/IPPROTO_MPTCP arm is explicit.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
cf60af03ca4e71134206809ea892e49b92a88896 to < a16714e7cf2baa98ba2efddd5d6cbac641f4e76baffectedcf60af03ca4e71134206809ea892e49b92a88896 to < 20383429b56974507c465d016e5238b189f7a246affectedcf60af03ca4e71134206809ea892e49b92a88896 to < 7f57428ce00891d26b0f087ef754a4d820ec83aaaffectedcf60af03ca4e71134206809ea892e49b92a88896 to < faea60deaa05c76f0772650f42eafde12bd39d93affectedcf60af03ca4e71134206809ea892e49b92a88896 to < 07b71c342382b854ab8030b244aeab6a7228ad7daffectedcf60af03ca4e71134206809ea892e49b92a88896 to < 4a69b83045d3195d5b9a9b053ad840ddb2998b4eaffectedcf60af03ca4e71134206809ea892e49b92a88896 to < 45ebb934ea50b436ce49b2f159f090dab0d7fa28affectedcf60af03ca4e71134206809ea892e49b92a88896 to < 4d587cd8a72155089a627130bbd4716ec0856e21affected
Linux Linux
Default version status: affected
3.6affected0 to < 3.6unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.177 to ≤ 6.1.*unaffected6.6.144 to ≤ 6.6.*unaffected6.12.95 to ≤ 6.12.*unaffected6.18.38 to ≤ 6.18.*unaffected7.1.3 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
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 ↗