)]}'
{
  "commit": "293eb1e7772b25a93647c798c7b89bf26c2da2e0",
  "tree": "debd49012773091732ee1e1b2388462b759525a7",
  "parents": [
    "d2857e79a2ba7c155eaa1a7d3581c8d26b31e54e"
  ],
  "author": {
    "name": "Vasiliy Kulikov",
    "email": "segoon@openwall.com",
    "time": "Tue Jul 26 16:08:38 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Jul 26 16:49:43 2011 -0700"
  },
  "message": "proc: fix a race in do_io_accounting()\n\nIf an inode\u0027s mode permits opening /proc/PID/io and the resulting file\ndescriptor is kept across execve() of a setuid or similar binary, the\nptrace_may_access() check tries to prevent using this fd against the\ntask with escalated privileges.\n\nUnfortunately, there is a race in the check against execve().  If\nexecve() is processed after the ptrace check, but before the actual io\ninformation gathering, io statistics will be gathered from the\nprivileged process.  At least in theory this might lead to gathering\nsensible information (like ssh/ftp password length) that wouldn\u0027t be\navailable otherwise.\n\nHolding task-\u003esignal-\u003ecred_guard_mutex while gathering the io\ninformation should protect against the race.\n\nThe order of locking is similar to the one inside of ptrace_attach():\nfirst goes cred_guard_mutex, then lock_task_sighand().\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9e3f650f23ca81eb3df3e18f70406398da9ff84",
      "old_mode": 33188,
      "old_path": "fs/proc/base.c",
      "new_id": "08e3eccf9a12071ae2007a076729851f5c431dbd",
      "new_mode": 33188,
      "new_path": "fs/proc/base.c"
    }
  ]
}
