From: Kees Cook <keescook@chromium.org> To: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com> Cc: Kees Cook <keescook@chromium.org>, Laura Abbott <labbott@redhat.com>, Steven Rostedt <rostedt@goodmis.org>, Daniel Micay <danielmicay@gmail.com>, Joe Perches <joe@perches.com>, Stephen Boyd <sboyd@codeaurora.org>, Syed Rameez Mustafa <rameezmustafa@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Josh Triplett <josh@joshtriplett.org>, Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, Lai Jiangshan <jiangshanlai@gmail.com>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Michael Ellerman <mpe@ellerman.id.au>, Andrew Morton <akpm@linux-foundation.org>, Dan Williams <dan.j.williams@intel.com>, Jan Kara <jack@suse.cz>, Thomas Gleixner <tglx@linutronix.de>, Josef Bacik <jbacik@fb.com>, Ingo Molnar <mingo@kernel.org>, Tejun Heo <tj@kernel.org>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Nikolay Aleksandrov <nikolay@cumulusnetworks.com>, Dmitry Vyukov <dvyukov@google.com>, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com Subject: [PATCH v3 0/5] bug: Provide toggle for BUG on data corruption Date: Wed, 17 Aug 2016 14:42:07 -0700 [thread overview] Message-ID: <1471470132-29499-1-git-send-email-keescook@chromium.org> (raw) This adds CONFIG_BUG_ON_DATA_CORRUPTION to trigger BUG()s when the kernel encounters unexpected data structure integrity as currently detected with CONFIG_DEBUG_LIST. Specifically list operations have been a target for widening flaws to gain "write anywhere" primitives for attackers, so this also consolidates the debug checking to avoid code and check duplication (e.g. RCU list debug was missing a check that got added to regular list debug). It also stops manipulations when corruption is detected, since worsening the corruption makes no sense. (Really, everyone should build with CONFIG_DEBUG_LIST since the checks are so inexpensive.) This is mostly a refactoring of similar code from PaX and Grsecurity, along with MSM kernel changes by Syed Rameez Mustafa. Along with the patches is a new lkdtm test to validate that setting CONFIG_DEBUG_LIST actually does what is desired. Thanks, -Kees v3: - fix MSM attribution, sboyd - use pr_err, joe v2: - consolidate printk/WARN/BUG/return logic into a CONFIG-specific macro - drop non-list BUGs, labbott
WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org> To: "Paul E . McKenney" <paulmck@linux.vnet.ibm.com> Cc: Kees Cook <keescook@chromium.org>, Laura Abbott <labbott@redhat.com>, Steven Rostedt <rostedt@goodmis.org>, Daniel Micay <danielmicay@gmail.com>, Joe Perches <joe@perches.com>, Stephen Boyd <sboyd@codeaurora.org>, Syed Rameez Mustafa <rameezmustafa@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Josh Triplett <josh@joshtriplett.org>, Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, Lai Jiangshan <jiangshanlai@gmail.com>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Michael Ellerman <mpe@ellerman.id.au>, Andrew Morton <akpm@linux-foundation.org>, Dan Williams <dan.j.williams@intel.com>, Jan Kara <jack@suse.cz>, Thomas Gleixner <tglx@linutronix.de>, Josef Bacik <jbacik@fb.com>, Ingo Molnar <mingo@kernel.org>, Tejun Heo <tj@kernel.org>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Nikolay Aleksandrov <nikolay@cumulusnetworks.com>, Dmitry Vyukov <dvyukov@google.com>, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com Subject: [kernel-hardening] [PATCH v3 0/5] bug: Provide toggle for BUG on data corruption Date: Wed, 17 Aug 2016 14:42:07 -0700 [thread overview] Message-ID: <1471470132-29499-1-git-send-email-keescook@chromium.org> (raw) This adds CONFIG_BUG_ON_DATA_CORRUPTION to trigger BUG()s when the kernel encounters unexpected data structure integrity as currently detected with CONFIG_DEBUG_LIST. Specifically list operations have been a target for widening flaws to gain "write anywhere" primitives for attackers, so this also consolidates the debug checking to avoid code and check duplication (e.g. RCU list debug was missing a check that got added to regular list debug). It also stops manipulations when corruption is detected, since worsening the corruption makes no sense. (Really, everyone should build with CONFIG_DEBUG_LIST since the checks are so inexpensive.) This is mostly a refactoring of similar code from PaX and Grsecurity, along with MSM kernel changes by Syed Rameez Mustafa. Along with the patches is a new lkdtm test to validate that setting CONFIG_DEBUG_LIST actually does what is desired. Thanks, -Kees v3: - fix MSM attribution, sboyd - use pr_err, joe v2: - consolidate printk/WARN/BUG/return logic into a CONFIG-specific macro - drop non-list BUGs, labbott
next reply other threads:[~2016-08-17 21:42 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-08-17 21:42 Kees Cook [this message] 2016-08-17 21:42 ` [kernel-hardening] [PATCH v3 0/5] bug: Provide toggle for BUG on data corruption Kees Cook 2016-08-17 21:42 ` [PATCH v3 1/5] list: Split list_add() debug checking into separate function Kees Cook 2016-08-17 21:42 ` [kernel-hardening] " Kees Cook 2016-08-17 21:42 ` [PATCH v3 2/5] rculist: Consolidate DEBUG_LIST for list_add_rcu() Kees Cook 2016-08-17 21:42 ` [kernel-hardening] " Kees Cook 2016-08-17 21:42 ` [PATCH v3 3/5] list: Split list_del() debug checking into separate function Kees Cook 2016-08-17 21:42 ` [kernel-hardening] " Kees Cook 2016-08-17 21:42 ` [PATCH v3 4/5] bug: Provide toggle for BUG on data corruption Kees Cook 2016-08-17 21:42 ` [kernel-hardening] " Kees Cook 2016-08-22 13:15 ` Arnd Bergmann 2016-08-22 13:15 ` [kernel-hardening] " Arnd Bergmann 2016-08-22 17:53 ` Paul E. McKenney 2016-08-22 17:53 ` [kernel-hardening] " Paul E. McKenney 2016-08-22 22:32 ` Kees Cook 2016-08-22 22:32 ` Kees Cook 2016-08-17 21:42 ` [PATCH v3 5/5] lkdtm: Add tests for struct list corruption Kees Cook 2016-08-17 21:42 ` [kernel-hardening] " Kees Cook 2016-08-18 13:46 ` [PATCH v3 0/5] bug: Provide toggle for BUG on data corruption Steven Rostedt 2016-08-18 13:46 ` [kernel-hardening] " Steven Rostedt 2016-08-18 17:29 ` Paul E. McKenney 2016-08-18 17:29 ` [kernel-hardening] " Paul E. McKenney 2016-08-18 17:42 ` [kernel-hardening] " Rik van Riel 2016-08-18 20:57 ` Paul E. McKenney 2016-08-19 2:53 ` Rik van Riel 2016-08-19 17:46 ` Paul E. McKenney
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1471470132-29499-1-git-send-email-keescook@chromium.org \ --to=keescook@chromium.org \ --cc=akpm@linux-foundation.org \ --cc=aneesh.kumar@linux.vnet.ibm.com \ --cc=arnd@arndb.de \ --cc=aryabinin@virtuozzo.com \ --cc=dan.j.williams@intel.com \ --cc=danielmicay@gmail.com \ --cc=dvyukov@google.com \ --cc=gregkh@linuxfoundation.org \ --cc=jack@suse.cz \ --cc=jbacik@fb.com \ --cc=jiangshanlai@gmail.com \ --cc=joe@perches.com \ --cc=josh@joshtriplett.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=kirill.shutemov@linux.intel.com \ --cc=labbott@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mathieu.desnoyers@efficios.com \ --cc=mingo@kernel.org \ --cc=mpe@ellerman.id.au \ --cc=nikolay@cumulusnetworks.com \ --cc=paulmck@linux.vnet.ibm.com \ --cc=rameezmustafa@codeaurora.org \ --cc=rostedt@goodmis.org \ --cc=sboyd@codeaurora.org \ --cc=tglx@linutronix.de \ --cc=tj@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.