[BGPCEP-259] Noncompliant and insecure handling of internal errors Created: 24/Jul/15  Updated: 03/Mar/19  Resolved: 06/Oct/15

Status: Resolved
Project: bgpcep
Component/s: BGP
Affects Version/s: Bugzilla Migration
Fix Version/s: Bugzilla Migration

Type: Bug
Reporter: Jozef Behran Assignee: Claudio David Gasparini
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 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



 Comments   
Comment by Claudio David Gasparini [ 06/Oct/15 ]

This is already implemented and the issue has not been replicated since Helium.

Generated at Wed Feb 07 19:12:30 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.