)]}'
{
  "commit": "07dcd7fe89938934ddad65f738bc5aac89b8e54d",
  "tree": "717298a13dce63c41306a91baf77201acc1c1b4f",
  "parents": [
    "289a4860d1f5de35b308c1c9e7c8592022c90af9"
  ],
  "author": {
    "name": "David Windsor",
    "email": "dave@nullcore.net",
    "time": "Tue Aug 15 16:45:00 2017 -0700"
  },
  "committer": {
    "name": "Kees Cook",
    "email": "keescook@chromium.org",
    "time": "Mon Jan 15 12:08:02 2018 -0800"
  },
  "message": "fork: Define usercopy region in mm_struct slab caches\n\nIn support of usercopy hardening, this patch defines a region in the\nmm_struct slab caches in which userspace copy operations are allowed.\nOnly the auxv field is copied to userspace.\n\ncache object allocation:\n    kernel/fork.c:\n        #define allocate_mm()     (kmem_cache_alloc(mm_cachep, GFP_KERNEL))\n\n        dup_mm():\n            ...\n            mm \u003d allocate_mm();\n\n        copy_mm(...):\n            ...\n            dup_mm();\n\n        copy_process(...):\n            ...\n            copy_mm(...)\n\n        _do_fork(...):\n            ...\n            copy_process(...)\n\nexample usage trace:\n\n    fs/binfmt_elf.c:\n        create_elf_tables(...):\n            ...\n            elf_info \u003d (elf_addr_t *)current-\u003emm-\u003esaved_auxv;\n            ...\n            copy_to_user(..., elf_info, ei_index * sizeof(elf_addr_t))\n\n        load_elf_binary(...):\n            ...\n            create_elf_tables(...);\n\nThis region is known as the slab cache\u0027s usercopy region. Slab caches\ncan now check that each dynamically sized copy operation involving\ncache-managed memory falls entirely within the slab\u0027s usercopy region.\n\nThis patch is modified from Brad Spengler/PaX Team\u0027s PAX_USERCOPY\nwhitelisting code in the last public patch of grsecurity/PaX based on my\nunderstanding of the code. Changes or omissions from the original code are\nmine and don\u0027t reflect the original grsecurity/PaX code.\n\nSigned-off-by: David Windsor \u003cdave@nullcore.net\u003e\n[kees: adjust commit log, split patch, provide usage trace]\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andy Lutomirski \u003cluto@kernel.org\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "432eadf6b58c18d9de6a3d09f3fef36089b4b5a2",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "82f2a0441d3b7eb4c023183696a9fc72df1097d5",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    }
  ]
}
