Hi Folks, I’ like to thank Glebs for the well-written and researched erratum. I’d like to engage the WG and authors before moving this one along.
AFAICT (and I am not as expert in the subject as some of you are), the erratum is correcting a legit bug in the spec. My concern is that as the submitter points out in https://mailarchive.ietf.org/arch/msg/rtg-bfd/lDxFfNpqo4kwuNEUY0AbjMBb8JU/, the bug appears to be there on purpose. Ish. If we look at the IESG guidelines for processing of errata (https://www.ietf.org/about/groups/iesg/statements/processing-errata-ietf-stream/), “4. Technical items that have a clear resolution in line with the original intent should be classified as Verified. If the resolution is not clear or requires further discussion, the report should be classified as Hold for Document Update. In both cases, only items that are clearly wrong should be considered.” Well that seems OK. But, “5. Changes that modify the working of a protocol to something that might be different from the intended consensus when the document was approved should generally be Rejected. Significant clarifications should not be handled as errata reports and need to be discussed by the relevant technical community.” It seems the currently documented design (check the sequence before checking the hash) was done on purpose, as Glebs documents, in order to gain some notional protection against a CPU exhaustion attack. It doesn’t seem likely that the repercussions were understood, though. If they were and the choice was made anyway, well that was the WG consensus and an erratum isn’t the right vehicle to fix it. If they weren’t… it’s a gray area, and given the nature of the bug, I’m inclined to verify the erratum. On the balance I’m inclined to verify the erratum, since I have no evidence that the WG was indeed aware of the repercussions of the design choice. But, I’d like to invite comment from the WG and authors before I proceed. Thanks, —John > On Aug 12, 2022, at 10:11 AM, RFC Errata System <rfc-edi...@rfc-editor.org> > wrote: > > > The following errata report has been submitted for RFC5880, > "Bidirectional Forwarding Detection (BFD)". > > -------------------------------------- > You may review the report below and at: > https://urldefense.com/v3/__https://www.rfc-editor.org/errata/eid7082__;!!NEt6yMaO-gk!DTSk4TWBt9uqplNg1ca5Tb-mDREPCXJCXHdKoY5mlGGyc8nGY1xFUNZhgGKypL9eT_3W1HTSSNgYUSH4AsGJcg$ > > -------------------------------------- > Type: Technical > Reported by: Glebs Ivanovskis <gl...@mikrotik.com> > > Section: 6.7.3 > > Original Text > ------------- > Otherwise (bfd.AuthSeqKnown is 0), bfd.AuthSeqKnown MUST be set to > 1, and bfd.RcvAuthSeq MUST be set to the value of the received > Sequence Number field. > > Replace the contents of the Auth Key/Digest field with the > authentication key selected by the received Auth Key ID field. If > the MD5 digest of the entire BFD Control packet is equal to the > received value of the Auth Key/Digest field, the received packet > MUST be accepted. Otherwise (the digest does not match the Auth > Key/Digest field), the received packet MUST be discarded. > > Corrected Text > -------------- > Replace the contents of the Auth Key/Digest field with the > authentication key selected by the received Auth Key ID field. If > the MD5 digest of the entire BFD Control packet is not equal to the > received value of the Auth Key/Digest field, the received packet > MUST be discarded. > > Otherwise, the packet MUST be accepted, bfd.AuthSeqKnown MUST be set to > 1, and bfd.RcvAuthSeq MUST be set to the value of the received > Sequence Number field. > > Notes > ----- > 1. Don't manipulate bfd.AuthSeqKnown and bfd.RcvAuthSeq before Auth > Key/Digest check. > 2. Explicitly mention what bfd.AuthSeqKnown and bfd.RcvAuthSeq must be set to > in both cases (bfd.AuthSeqKnown is 0 and bfd.AuthSeqKnown is 1). > > Based on email exchange: > https://urldefense.com/v3/__https://mailarchive.ietf.org/arch/msg/rtg-bfd/lDxFfNpqo4kwuNEUY0AbjMBb8JU/__;!!NEt6yMaO-gk!DTSk4TWBt9uqplNg1ca5Tb-mDREPCXJCXHdKoY5mlGGyc8nGY1xFUNZhgGKypL9eT_3W1HTSSNgYUSEIW7r6RQ$ > > Instructions: > ------------- > This erratum is currently posted as "Reported". If necessary, please > use "Reply All" to discuss whether it should be verified or > rejected. When a decision is reached, the verifying party > can log in to change the status and edit the report, if necessary. > > -------------------------------------- > RFC5880 (draft-ietf-bfd-base-11) > -------------------------------------- > Title : Bidirectional Forwarding Detection (BFD) > Publication Date : June 2010 > Author(s) : D. Katz, D. Ward > Category : PROPOSED STANDARD > Source : Bidirectional Forwarding Detection > Area : Routing > Stream : IETF > Verifying Party : IESG