)]}'
{
  "commit": "78b20c8eeacd2e44a2d8a4cb5316d3c521d90911",
  "tree": "d2e1c0842c448a4b1df74c5047d5aecb37502331",
  "parents": [
    "f4c7f37f0ab990952539dc68d931d65c3657600a"
  ],
  "author": {
    "name": "Muhammad Bilal",
    "email": "meatuni001@gmail.com",
    "time": "Mon Jun 22 18:18:02 2026 +0500"
  },
  "committer": {
    "name": "David Heidelberg",
    "email": "david@ixit.cz",
    "time": "Tue Aug 11 18:10:02 2026 +0200"
  },
  "message": "nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers\n\nnfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain\nthree related bugs in their TLV parsing loops:\n\n1. \u0027offset\u0027 is declared u8 but tlv_array_len is u16. When TLV data\n   advances offset past 255 it silently wraps to zero, causing\n   infinite loops or double-processing of buffer data.\n\n2. Before reading tlv[0] (type) and tlv[1] (length) there is no\n   check that offset+2 \u003c\u003d tlv_array_len. A truncated TLV causes\n   an OOB read of one byte past the buffer end.\n\n3. After reading the length field, the value bytes are accessed\n   without checking offset+2+length \u003c\u003d tlv_array_len. A crafted\n   length\u003d0xFF on a short buffer causes up to 255 bytes of OOB\n   read past the buffer end.\n\nBoth functions are reachable without authentication via\nnfc_llcp_set_remote_gb() which feeds remote LLCP general bytes\ndirectly into nfc_llcp_parse_gb_tlv() with no additional\nvalidation.\n\nFix all three issues by widening offset from u8 to u16 and adding\nbounds checks for both the TLV header and value field before each\naccess.\n\nFixes: 3df40eb3a2ea (\"nfc: constify several pointers to u8, char and sk_buff\")\nCc: stable@vger.kernel.org\nSigned-off-by: Muhammad Bilal \u003cmeatuni001@gmail.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nLink: https://patch.msgid.link/20260622131802.239035-1-meatuni001@gmail.com\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "291f26facbf3aa6622cd557620fc2e2fa6a4c6bb",
      "old_mode": 33188,
      "old_path": "net/nfc/llcp_commands.c",
      "new_id": "ca89fe967d6a27903a009ac4d065a232e276a2d3",
      "new_mode": 33188,
      "new_path": "net/nfc/llcp_commands.c"
    }
  ]
}
