Skip to content
Snippets Groups Projects
  • Matthew Jordan's avatar
    8fb5bdce
    Prevent exhaustion of system resources through exploitation of event cache · 8fb5bdce
    Matthew Jordan authored
    Asterisk maintains an internal cache for devices in the event subsystem. The
    device state cache holds the state of each device known to Asterisk, such that
    consumers of device state information can query for the last known state for
    a particular device, even if it is not part of an active call. The concept of
    a device in Asterisk can include entities that do not have a physical
    representation. One way that this occurred was when anonymous calls are allowed
    in Asterisk. A device was automatically created and stored in the cache for
    each anonymous call that occurred; this was possible in the SIP and IAX2
    channel drivers and through channel drivers that utilized the
    res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices
    are never removed from the system, allowing anonymous calls to potentially
    exhaust a system's resources.
    
    This patch changes the event cache subsystem and device state management to
    no longer cache devices that are not associated with a physical entity.
    
    (issue ASTERISK-20175)
    Reported by: Russell Bryant, Leif Madsen, Joshua Colp
    Tested by: kmoore
    patches:
      event-cachability-3.diff uploaded by jcolp (license 5000)
    ........
    
    Merged revisions 378303 from http://svn.asterisk.org/svn/asterisk/branches/1.8
    ........
    
    Merged revisions 378320 from http://svn.asterisk.org/svn/asterisk/branches/10
    ........
    
    Merged revisions 378321 from http://svn.asterisk.org/svn/asterisk/branches/11
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@378322 65c4cc65-6c06-0410-ace0-fbb531ad65f3
    8fb5bdce
    History
    Prevent exhaustion of system resources through exploitation of event cache
    Matthew Jordan authored
    Asterisk maintains an internal cache for devices in the event subsystem. The
    device state cache holds the state of each device known to Asterisk, such that
    consumers of device state information can query for the last known state for
    a particular device, even if it is not part of an active call. The concept of
    a device in Asterisk can include entities that do not have a physical
    representation. One way that this occurred was when anonymous calls are allowed
    in Asterisk. A device was automatically created and stored in the cache for
    each anonymous call that occurred; this was possible in the SIP and IAX2
    channel drivers and through channel drivers that utilized the
    res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices
    are never removed from the system, allowing anonymous calls to potentially
    exhaust a system's resources.
    
    This patch changes the event cache subsystem and device state management to
    no longer cache devices that are not associated with a physical entity.
    
    (issue ASTERISK-20175)
    Reported by: Russell Bryant, Leif Madsen, Joshua Colp
    Tested by: kmoore
    patches:
      event-cachability-3.diff uploaded by jcolp (license 5000)
    ........
    
    Merged revisions 378303 from http://svn.asterisk.org/svn/asterisk/branches/1.8
    ........
    
    Merged revisions 378320 from http://svn.asterisk.org/svn/asterisk/branches/10
    ........
    
    Merged revisions 378321 from http://svn.asterisk.org/svn/asterisk/branches/11
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@378322 65c4cc65-6c06-0410-ace0-fbb531ad65f3