lkml.org 
[lkml]   [2014]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCHv3 2/3] kernel: add support for live patching
    On Mon, Nov 24, 2014 at 12:13:20PM +0100, Thomas Gleixner wrote:

    > > This commit introduces code for the live patching core. It implements
    > > an ftrace-based mechanism and kernel interface for doing live patching
    > > of kernel and kernel module functions.
    > >
    > > It represents the greatest common functionality set between kpatch and
    > > kgraft and can accept patches built using either method.
    > >
    > > This first version does not implement any consistency mechanism that
    > > ensures that old and new code do not run together. In practice, ~90% of
    > > CVEs are safe to apply in this way, since they simply add a conditional
    > > check. However, any function change that can not execute safely with
    > > the old version of the function can _not_ be safely applied in this
    > > version.
    >
    > To be honest this sounds frightening.
    >
    > How is determined whether a change can be applied w/o a consistency
    > mechanism or not?

    If there are any syntactic (function prototype - arguments, return value
    type) or semantic dependencies (data value semantics, locking order,
    ...) between multiple functions the patch changes, then it cannot be
    applied.

    If the changes are small and localized, don't depend on the order in
    which individual functions are replaced, when both new and old code can
    run in parallel on different CPUs or in sequence in a single thread
    safely, then it can be applied.

    --
    Vojtech Pavlik
    Director SUSE Labs


    \
     
     \ /
      Last update: 2014-11-24 15:01    [W:4.250 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site