)]}'
{
  "commit": "2049bd2bd5fb77d15efcbc7409707051cd3205c8",
  "tree": "d4177afe1f5adad73452fe176b1cb13408758682",
  "parents": [
    "5ba3d144de48815b46db6597c70aa6221a155a55"
  ],
  "author": {
    "name": "Sebastian Andrzej Siewior",
    "email": "bigeasy@linutronix.de",
    "time": "Fri Jun 19 17:20:12 2026 +0200"
  },
  "committer": {
    "name": "Miri Amarilio",
    "email": "mirilio@google.com",
    "time": "Wed Jul 15 16:08:19 2026 -0700"
  },
  "message": "net: Drop the lock in skb_may_tx_timestamp()\n\n[ Upstream commit 983512f3a87fd8dc4c94dfa6b596b6e57df5aad7 ]\n\nskb_may_tx_timestamp() may acquire sock::sk_callback_lock. The lock must\nnot be taken in IRQ context, only softirq is okay. A few drivers receive\nthe timestamp via a dedicated interrupt and complete the TX timestamp\nfrom that handler. This will lead to a deadlock if the lock is already\nwrite-locked on the same CPU.\n\nTaking the lock can be avoided. The socket (pointed by the skb) will\nremain valid until the skb is released. The -\u003esk_socket and -\u003efile\nmember will be set to NULL once the user closes the socket which may\nhappen before the timestamp arrives.\nIf we happen to observe the pointer while the socket is closing but\nbefore the pointer is set to NULL then we may use it because both\npointer (and the file\u0027s cred member) are RCU freed.\n\nDrop the lock. Use READ_ONCE() to obtain the individual pointer. Add a\nmatching WRITE_ONCE() where the pointer are cleared.\n\nBUG\u003db/510709973\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dFixed CVE-2026-43216 in the Linux kernel.\n\ncos-patch: security-moderate\nLink: https://lore.kernel.org/all/20260205145104.iWinkXHv@linutronix.de\nFixes: b245be1f4db1a (\"net-timestamp: no-payload only sysctl\")\nChange-Id: I587f7d3562942b1f084ab160e243eb11b85f243e\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nReviewed-by: Willem de Bruijn \u003cwillemb@google.com\u003e\nReviewed-by: Jason Xing \u003ckerneljasonxing@gmail.com\u003e\nReviewed-by: Eric Dumazet \u003cedumazet@google.com\u003e\nLink: https://patch.msgid.link/20260220183858.N4ERjFW6@linutronix.de\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\n[adapted sk_set_socket() in include/net/sock.h to fix the conflict  from\n not having commit 5d6b58c932ec (\"net: lockless sock_i_ino()\") and the\n additional previous changes required by it.\n It comes down to just now having the lines of\n    if (sock) {\n            WRITE_ONCE(sk-\u003esk_uid, SOCK_INODE(sock)-\u003ei_uid);\n            WRITE_ONCE(sk-\u003esk_ino, SOCK_INODE(sock)-\u003ei_ino);\n    }\n below the changed line.\n I\u0027ve tested this on a device running an nfs-root and did some\n additional network stress-testing.]\nSigned-off-by: Heiko Stuebner \u003cheiko.stuebner@cherry.de\u003e\nSigned-off-by: Sasha Levin \u003csashal@kernel.org\u003e\nSigned-off-by: Kernel CVE Triage Automation \u003ccloud-image-kernel-cve-triage-automation@prod.google.com\u003e\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/169324\nReviewed-by: Robert Kolchmeyer \u003crkolchmeyer@google.com\u003e\nReviewed-by: Miri Amarilio \u003cmirilio@google.com\u003e\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1bc8109ad7b23126da980a715e920773246a5b0a",
      "old_mode": 33188,
      "old_path": "include/net/sock.h",
      "new_id": "a460885e5da8aea22b6e84a49b618e7bbcbba06a",
      "new_mode": 33188,
      "new_path": "include/net/sock.h"
    },
    {
      "type": "modify",
      "old_id": "834dbafab0a94b10a3b22ab0563bd5ee8dd57883",
      "old_mode": 33188,
      "old_path": "net/core/skbuff.c",
      "new_id": "a768d4f1b6e904e0bec09a40665e1944bd0a7201",
      "new_mode": 33188,
      "new_path": "net/core/skbuff.c"
    },
    {
      "type": "modify",
      "old_id": "5c5dd9f6605a94a86b3ce8d25d2a868d4ef94788",
      "old_mode": 33188,
      "old_path": "net/socket.c",
      "new_id": "723bc3a1ba5cdd17f559a65de73d9c87911e6954",
      "new_mode": 33188,
      "new_path": "net/socket.c"
    }
  ]
}
