Skip to content
Snippets Groups Projects
  • Tobias Stoeckmann's avatar
    f7a547b7
    Fix double-free/OOB-write while receiving IPC data · f7a547b7
    Tobias Stoeckmann authored
    
    If a malicious client pretends to be the E17 window manager, it is
    possible to trigger an out of boundary heap write while receiving an
    IPC message.
    
    The length of the already received message is stored in an unsigned
    short, which overflows after receiving 64 KB of data. It's comparably
    small amount of data and therefore achievable for an attacker.
    
    When len overflows, realloc() will either be called with a small value
    and therefore chars will be appended out of bounds, or len + 1 will be
    exactly 0, in which case realloc() behaves like free(). This could be
    abused for a later double-free attack as it's even possible to overwrite
    the free information -- but this depends on the malloc implementation.
    
    Signed-off-by: default avatarTobias Stoeckmann <tobias@stoeckmann.org>
    f7a547b7
    History
    Fix double-free/OOB-write while receiving IPC data
    Tobias Stoeckmann authored
    
    If a malicious client pretends to be the E17 window manager, it is
    possible to trigger an out of boundary heap write while receiving an
    IPC message.
    
    The length of the already received message is stored in an unsigned
    short, which overflows after receiving 64 KB of data. It's comparably
    small amount of data and therefore achievable for an attacker.
    
    When len overflows, realloc() will either be called with a small value
    and therefore chars will be appended out of bounds, or len + 1 will be
    exactly 0, in which case realloc() behaves like free(). This could be
    abused for a later double-free attack as it's even possible to overwrite
    the free information -- but this depends on the malloc implementation.
    
    Signed-off-by: default avatarTobias Stoeckmann <tobias@stoeckmann.org>