1. 08 7月, 2016 5 次提交
  2. 11 6月, 2016 5 次提交
  3. 07 4月, 2016 3 次提交
  4. 02 3月, 2016 5 次提交
    • K
      lkdtm: improve use-after-free tests · 7c0ae5be
      Kees Cook 提交于
      This improves the order of operations on the use-after-free tests to
      try to make sure we've executed any available sanity-checking code,
      and to report the poisoning that was found.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      7c0ae5be
    • D
      lkdtm: add test for atomic_t underflow/overflow · 5fd9e480
      David Windsor 提交于
      dmesg output of running this LKDTM test with PaX:
      
      [187095.475573] lkdtm: No crash points registered, enable through debugfs
      [187118.020257] lkdtm: Performing direct entry WRAP_ATOMIC
      [187118.030045] lkdtm: attempting atomic underflow
      [187118.030929] PAX: refcount overflow detected in: bash:1790, uid/euid: 0/0
      [187118.071667] PAX: refcount overflow occured at: lkdtm_do_action+0x19e/0x400 [lkdtm]
      [187118.081423] CPU: 3 PID: 1790 Comm: bash Not tainted 4.2.6-pax-refcount-split+ #2
      [187118.083403] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
      [187118.102596] task: ffff8800da8de040 ti: ffff8800da8e4000 task.ti: ffff8800da8e4000
      [187118.111321] RIP: 0010:[<ffffffffc00fc2fe>]  [<ffffffffc00fc2fe>] lkdtm_do_action+0x19e/0x400 [lkdtm]
      ...
      [187118.128074] lkdtm: attempting atomic overflow
      [187118.128080] PAX: refcount overflow detected in: bash:1790, uid/euid: 0/0
      [187118.128082] PAX: refcount overflow occured at: lkdtm_do_action+0x1b6/0x400 [lkdtm]
      [187118.128085] CPU: 3 PID: 1790 Comm: bash Not tainted 4.2.6-pax-refcount-split+ #2
      [187118.128086] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
      [187118.128088] task: ffff8800da8de040 ti: ffff8800da8e4000 task.ti: ffff8800da8e4000
      [187118.128092] RIP: 0010:[<ffffffffc00fc316>]  [<ffffffffc00fc316>] lkdtm_do_action+0x1b6/0x400 [lkdtm]
      Signed-off-by: NDavid Windsor <dave@progbits.org>
      [cleaned up whitespacing, keescook]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      5fd9e480
    • L
      lkdtm: Add read/write after free tests for buddy memory · 920d451f
      Laura Abbott 提交于
      The current tests for read/write after free work on slab
      allocated memory. Memory straight from the buddy allocator
      may behave slightly differently and have a different set
      of parameters to test. Add tests for those cases as well.
      
      On a basic x86 boot:
      
       # echo WRITE_BUDDY_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   22.291950] lkdtm: Performing direct entry WRITE_BUDDY_AFTER_FREE
      [   22.292983] lkdtm: Writing to the buddy page before free
      [   22.293950] lkdtm: Attempting bad write to the buddy page after free
      
       # echo READ_BUDDY_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   32.375601] lkdtm: Performing direct entry READ_BUDDY_AFTER_FREE
      [   32.379896] lkdtm: Value in memory before free: 12345678
      [   32.383854] lkdtm: Attempting to read from freed memory
      [   32.389309] lkdtm: Buddy page was not poisoned
      
      On x86 with CONFIG_DEBUG_PAGEALLOC and debug_pagealloc=on:
      
       # echo WRITE_BUDDY_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   17.475533] lkdtm: Performing direct entry WRITE_BUDDY_AFTER_FREE
      [   17.477360] lkdtm: Writing to the buddy page before free
      [   17.479089] lkdtm: Attempting bad write to the buddy page after free
      [   17.480904] BUG: unable to handle kernel paging request at
      ffff88000ebd8000
      
       # echo READ_BUDDY_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   14.606433] lkdtm: Performing direct entry READ_BUDDY_AFTER_FREE
      [   14.607447] lkdtm: Value in memory before free: 12345678
      [   14.608161] lkdtm: Attempting to read from freed memory
      [   14.608860] BUG: unable to handle kernel paging request at
      ffff88000eba3000
      
      Note that arches without ARCH_SUPPORTS_DEBUG_PAGEALLOC may not
      produce the same crash.
      Signed-off-by: NLaura Abbott <labbott@fedoraproject.org>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      920d451f
    • L
      lkdtm: Update WRITE_AFTER_FREE test · 250a8988
      Laura Abbott 提交于
      The SLUB allocator may use the first word of a freed block to store the
      freelist information. This may make it harder to test poisoning
      features. Change the WRITE_AFTER_FREE test to better match what
      the READ_AFTER_FREE test does and also print out a big more information.
      Signed-off-by: NLaura Abbott <labbott@fedoraproject.org>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      250a8988
    • L
      lkdtm: Add READ_AFTER_FREE test · bc0b8cc6
      Laura Abbott 提交于
      In a similar manner to WRITE_AFTER_FREE, add a READ_AFTER_FREE
      test to test free poisoning features. Sample output when
      no sanitization is present:
      
       # echo READ_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   17.542473] lkdtm: Performing direct entry READ_AFTER_FREE
      [   17.543866] lkdtm: Value in memory before free: 12345678
      [   17.545212] lkdtm: Attempting bad read from freed memory
      [   17.546542] lkdtm: Memory was not poisoned
      
      with slub_debug=P:
      
       # echo READ_AFTER_FREE > /sys/kernel/debug/provoke-crash/DIRECT
      [   22.415531] lkdtm: Performing direct entry READ_AFTER_FREE
      [   22.416366] lkdtm: Value in memory before free: 12345678
      [   22.417137] lkdtm: Attempting bad read from freed memory
      [   22.417897] lkdtm: Memory correctly poisoned, calling BUG
      Signed-off-by: NLaura Abbott <labbott@fedoraproject.org>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      bc0b8cc6
  5. 22 2月, 2016 1 次提交
    • K
      lkdtm: Verify that '__ro_after_init' works correctly · 7cca071c
      Kees Cook 提交于
      The new __ro_after_init section should be writable before init, but
      not after. Validate that it gets updated at init and can't be written
      to afterwards.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: David Brown <david.brown@linaro.org>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Emese Revfy <re.emese@gmail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Mathias Krause <minipli@googlemail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: PaX Team <pageexec@freemail.hu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: kernel-hardening@lists.openwall.com
      Cc: linux-arch <linux-arch@vger.kernel.org>
      Link: http://lkml.kernel.org/r/1455748879-21872-6-git-send-email-keescook@chromium.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      7cca071c
  6. 10 2月, 2016 1 次提交
  7. 29 10月, 2015 1 次提交
    • S
      lkdtm: fix ACCESS_USERSPACE test · 2cb202c1
      Stephen Smalley 提交于
      Add a copy_to_user() call to the ACCESS_USERSPACE test
      prior to attempting direct dereferencing of the user
      address to ensure the page is present.  Otherwise,
      a fault occurs on arm kernels even prior to the introduction
      of CONFIG_CPU_SW_DOMAIN_PAN, and there is no difference in
      behavior for CONFIG_CPU_SW_DOMAIN_PAN=n vs CONFIG_CPU_SW_DOMAIN_PAN=y.
      
      Before this change, for any value of CONFIG_CPU_SW_DOMAIN_PAN:
      lkdtm: Performing direct entry ACCESS_USERSPACE
      lkdtm: attempting bad read at b6fe8000
      Unable to handle kernel paging request at virtual address b6fe8000
      
      After this change, for CONFIG_CPU_SW_DOMAIN_PAN=n:
      lkdtm: Performing direct entry ACCESS_USERSPACE
      lkdtm: attempting bad read at b6efc000
      lkdtm: attempting bad write at b6efc000
      
      After this change, for CONFIG_CPU_SW_DOMAIN_PAN=y:
      lkdtm: Performing direct entry ACCESS_USERSPACE
      lkdtm: attempting bad read at b6f7d000
      Unhandled fault: page domain fault (0x01b) at 0xb6f7d000
      ...
      Signed-off-by: NStephen Smalley <sds@tycho.nsa.gov>
      Acked-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2cb202c1
  8. 10 7月, 2014 1 次提交
  9. 15 2月, 2014 4 次提交
  10. 19 12月, 2013 1 次提交
  11. 09 12月, 2013 1 次提交
  12. 30 10月, 2013 2 次提交
  13. 25 10月, 2013 1 次提交
  14. 25 7月, 2013 4 次提交
  15. 31 7月, 2012 1 次提交
  16. 04 2月, 2012 1 次提交
  17. 28 6月, 2011 1 次提交
  18. 27 10月, 2010 1 次提交
  19. 16 9月, 2010 1 次提交
    • A
      lkdtm: use generic_file_llseek in debugfs · 05271ec4
      Arnd Bergmann 提交于
      When the default llseek behavior gets changed to
      not allowing seek, all file operations that rely
      on the current behaviour need to use an explicit
      .llseek operation.
      
      The files that lkdtm uses in debugfs are regular
      files and they get read using simple_read_from_buffer,
      so generic_file_llseek is the right operation.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      05271ec4