Uploaded image for project: 'bgpcep'
  1. bgpcep
  2. BGPCEP-259

Noncompliant and insecure handling of internal errors

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • Bugzilla Migration
    • Bugzilla Migration
    • BGP
    • None
    • Operating System: All
      Platform: All

    • 4049

    Description

      If some resource gets exhausted (such as execution queue capacity as seen in CONTROLLER-957 or BGPCEP-258), the speaker shall (after reporting the condition in the logs) send NOTIFICATION with Code=6 (CEASE) and SubCode=8 (Out Of Resources) and close the connection. The current implementation performs "log spamming" instead, leading to multi-gigabyte logs.

      If some other problem occurs which prevents the connection from working properly, the speaker shall "administratively shutdown the connection" after reporting the problem in the logs. This is done by sending NOTIFICATION with Code=6 (CEASE) and SubCode=2 (Administrative Shutdown), closing the connection and cleaning the mess left behind. A clearer message would be NOTIFICATION with some error code that says "Internal Router Error" but I could not see such error code in the BGP RFCs I was reading so far so I consider the "Administrative Shutdown" to be the best alternative.

      Producing multi-gigabyte logs can easily lead to resource exhaustion, allowing an attacker to crash the connection and then continue pushing more and more updates until the disk holding the log space gets full, rendering the application completely inoperable.

      See RFC4271 and RFC4486

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            cdgasparini Claudio David Gasparini
            jbehran@cisco.com Jozef Behran
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: