)]}'
{
  "commit": "2ffcc1008ec07bc0d54abf1e34ffa84d16b697cb",
  "tree": "368f23716846afcc8f591f42626106e64ce731ae",
  "parents": [
    "fd4b4207f1f75c6e71a4e1a9d57f8abc08b300cd"
  ],
  "author": {
    "name": "Slavin Liu",
    "email": "slavin452@gmail.com",
    "time": "Fri Sep 12 01:57:59 2025 +0800"
  },
  "committer": {
    "name": "Cloud Image Release",
    "email": "cloud-image-release@prod.google.com",
    "time": "Tue Oct 07 16:08:07 2025 -0700"
  },
  "message": "ipvs: Defer ip_vs_ftp unregister during netns cleanup\n\nOn the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp\nbefore connections with valid cp-\u003eapp pointers are flushed, leading to a\nuse-after-free.\n\nFix this by introducing a global `exiting_module` flag, set to true in\nip_vs_ftp_exit() before unregistering the pernet subsystem. In\n__ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns\ncleanup (when exiting_module is false) and defer it to\n__ip_vs_cleanup_batch(), which unregisters all apps after all connections\nare flushed. If called during module exit, unregister ip_vs_ftp\nimmediately.\n\nBUG\u003db/449335583\nTEST\u003dpresubmit,validation\nRELEASE_NOTE\u003dFixed KCTF-134121b in the Linux kernel.\n\ncos-patch: security-high\nFixes: 61b1ab4583e2 (\"IPVS: netns, add basic init per netns.\")\nSuggested-by: Julian Anastasov \u003cja@ssi.bg\u003e\nChange-Id: If409c0fd0c23bc70ba59795f95301a0aff89825a\nSigned-off-by: Slavin Liu \u003cslavin452@gmail.com\u003e\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/113623\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Chenglong Tang \u003cchenglongtang@google.com\u003e\nMain-Branch-Verified: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/113666\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef1f45e43b6308edb33cc616f9d0994787d7e726",
      "old_mode": 33188,
      "old_path": "net/netfilter/ipvs/ip_vs_ftp.c",
      "new_id": "61d3797fb7995490edfc40f6a630dbf3373e674a",
      "new_mode": 33188,
      "new_path": "net/netfilter/ipvs/ip_vs_ftp.c"
    }
  ]
}
