)]}'
{
  "commit": "b38e53cbfb9d84732e5984fbd73e128d592415c5",
  "tree": "81a39ebc19bd9db510ced4fed04d4d66eee32e46",
  "parents": [
    "7a400c6fe3617e31e690e3f7ca37bb335e0498f3"
  ],
  "author": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Mon Apr 20 18:11:04 2026 +0200"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Mon Apr 27 10:00:18 2026 -0600"
  },
  "message": "usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl\n\nJust like in a previous problem in this driver, usblp_ctrl_msg() will\ncollapse the usb_control_msg() return value to 0/-errno, discarding the\nactual number of bytes transferred.\n\nIdeally that short command should be detected and error out, but many\nprinters are known to send \"incorrect\" responses back so we can\u0027t just\ndo that.\n\nstatusbuf is kmalloc(8) at probe time and never filled before the first\nLPGETSTATUS ioctl.\n\nusblp_read_status() requests 1 byte. If a malicious printer responds\nwith zero bytes, *statusbuf is one byte of stale kmalloc heap,\nsign-extended into the local int status, which the LPGETSTATUS path then\ncopy_to_user()s directly to the ioctl caller.\n\nFix this all by just zapping out the memory buffer when allocated at\nprobe time.  If a later call does a short read, the data will be\nidentical to what the device sent it the last time, so there is no\n\"leak\" of information happening.\n\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nAssisted-by: gkh_clanker_t1000\nCc: stable \u003cstable@kernel.org\u003e\nLink: https://patch.msgid.link/2026042011-shredder-savage-48c6@gregkh\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e9b848622a3aa598f82060f7e20b87bc7f58cb7d",
      "old_mode": 33188,
      "old_path": "drivers/usb/class/usblp.c",
      "new_id": "746414763da5d60d9827e6c5f33ec29656225dd8",
      "new_mode": 33188,
      "new_path": "drivers/usb/class/usblp.c"
    }
  ]
}
