{"id":"CVE-2025-68768","state":"PUBLISHED","title":"inet: frags: flush pending skbs in fqdir_pre_exit()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ninet: frags: flush pending skbs in fqdir_pre_exit()\n\nWe have been seeing occasional deadlocks on pernet_ops_rwsem since\nSeptember in NIPA. The stuck task was usually modprobe (often loading\na driver like ipvlan), trying to take the lock as a Writer.\nlockdep does not track readers for rwsems so the read wasn't obvious\nfrom the reports.\n\nOn closer inspection the Reader holding the lock was conntrack looping\nforever in nf_conntrack_cleanup_net_list(). Based on past experience\nwith occasional NIPA crashes I looked thru the tests which run before\nthe crash and noticed that the crash follows ip_defrag.sh. An immediate\nred flag. Scouring thru (de)fragmentation queues reveals skbs sitting\naround, holding conntrack references.\n\nThe problem is that since conntrack depends on nf_defrag_ipv6,\nnf_defrag_ipv6 will load first. Since nf_defrag_ipv6 loads first its\nnetns exit hooks run _after_ conntrack's netns exit hook.\n\nFlush all fragment queue SKBs during fqdir_pre_exit() to release\nconntrack references before conntrack cleanup runs. Also flush\nthe queues in timer expiry handlers when they discover fqdir->dead\nis set, in case packet sneaks in while we're running the pre_exit\nflush.\n\nThe commit under Fixes is not exactly the culprit, but I think\npreviously the timer firing would eventually unblock the spinning\nconntrack.","publishedAt":"2026-01-13T15:28:47.106Z","updatedAt":"2026-06-19T11:57:29.047Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"22ee4010866da81aeee08e1ea3fddbe418feb212","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"543555954b1ee8d1903a7020324efb41b0c97428","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"c70df25214ac9b32b53e18e6ae3b8f073ffa6903","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"006a5035b495dec008805df249f92c22c89c3d2e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/inet_frag.h","include/net/ipv6_frag.h","net/ipv4/inet_fragment.c","net/ipv4/ip_fragment.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.3","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/inet_frag.h","include/net/ipv6_frag.h","net/ipv4/inet_fragment.c","net/ipv4/ip_fragment.c"]}],"references":["https://git.kernel.org/stable/c/22ee4010866da81aeee08e1ea3fddbe418feb212","https://git.kernel.org/stable/c/543555954b1ee8d1903a7020324efb41b0c97428","https://git.kernel.org/stable/c/c70df25214ac9b32b53e18e6ae3b8f073ffa6903","https://git.kernel.org/stable/c/006a5035b495dec008805df249f92c22c89c3d2e"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:56.034Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/68xxx/CVE-2025-68768.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-68768","state":"PUBLISHED","datePublished":"2026-01-13T15:28:47.106Z","dateUpdated":"2026-06-19T11:57:29.047Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-24T10:30:51.034Z"},"containers":{"cna":{"title":"inet: frags: flush pending skbs in fqdir_pre_exit()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ninet: frags: flush pending skbs in fqdir_pre_exit()\n\nWe have been seeing occasional deadlocks on pernet_ops_rwsem since\nSeptember in NIPA. The stuck task was usually modprobe (often loading\na driver like ipvlan), trying to take the lock as a Writer.\nlockdep does not track readers for rwsems so the read wasn't obvious\nfrom the reports.\n\nOn closer inspection the Reader holding the lock was conntrack looping\nforever in nf_conntrack_cleanup_net_list(). Based on past experience\nwith occasional NIPA crashes I looked thru the tests which run before\nthe crash and noticed that the crash follows ip_defrag.sh. An immediate\nred flag. Scouring thru (de)fragmentation queues reveals skbs sitting\naround, holding conntrack references.\n\nThe problem is that since conntrack depends on nf_defrag_ipv6,\nnf_defrag_ipv6 will load first. Since nf_defrag_ipv6 loads first its\nnetns exit hooks run _after_ conntrack's netns exit hook.\n\nFlush all fragment queue SKBs during fqdir_pre_exit() to release\nconntrack references before conntrack cleanup runs. Also flush\nthe queues in timer expiry handlers when they discover fqdir->dead\nis set, in case packet sneaks in while we're running the pre_exit\nflush.\n\nThe commit under Fixes is not exactly the culprit, but I think\npreviously the timer firing would eventually unblock the spinning\nconntrack."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"22ee4010866da81aeee08e1ea3fddbe418feb212","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"543555954b1ee8d1903a7020324efb41b0c97428","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"c70df25214ac9b32b53e18e6ae3b8f073ffa6903","versionType":"git"},{"version":"d5dd88794a13c2f24cce31abad7a0a6c5e0ed2db","status":"affected","lessThan":"006a5035b495dec008805df249f92c22c89c3d2e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/inet_frag.h","include/net/ipv6_frag.h","net/ipv4/inet_fragment.c","net/ipv4/ip_fragment.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.3","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/inet_frag.h","include/net/ipv6_frag.h","net/ipv4/inet_fragment.c","net/ipv4/ip_fragment.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/22ee4010866da81aeee08e1ea3fddbe418feb212"},{"url":"https://git.kernel.org/stable/c/543555954b1ee8d1903a7020324efb41b0c97428"},{"url":"https://git.kernel.org/stable/c/c70df25214ac9b32b53e18e6ae3b8f073ffa6903"},{"url":"https://git.kernel.org/stable/c/006a5035b495dec008805df249f92c22c89c3d2e"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-06-19T11:57:29.047Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.12.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.18.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}