IETF Last Call Review of draft-ietf-regext-epp-quic-09
review-ietf-regext-epp-quic-09-secdir-lc-ounsworth-2026-06-15-00
| Request | Review of | draft-ietf-regext-epp-quic |
|---|---|---|
| Requested revision | No specific revision (document currently at 12) | |
| Type | IETF Last Call Review | |
| Team | Security Area Directorate (secdir) | |
| Deadline | 2026-06-22 | |
| Requested | 2026-06-08 | |
| Authors | Jiankang Yao , Hongtao Li , M. Zhang , Dan Keathley , James Gould | |
| I-D last updated | 2026-07-06 (Latest revision 2026-07-06) | |
| Completed reviews |
Tsvart IETF Last Call review of -09
by Zaheduzzaman Sarker
(diff)
Secdir IETF Last Call review of -09 by Mike Ounsworth (diff) Opsdir IETF Last Call review of -09 by Giuseppe Fioccola (diff) Genart IETF Last Call review of -09 by Joel M. Halpern (diff) |
|
| Assignment | Reviewer | Mike Ounsworth |
| State | Completed | |
| Request | IETF Last Call review on draft-ietf-regext-epp-quic by Security Area Directorate Assigned | |
| Posted at | https://mailarchive.ietf.org/arch/msg/secdir/VpEi8_bgdnz2-THpWGc1x5HV1Us | |
| Reviewed revision | 09 (document currently at 12) | |
| Result | Has issues | |
| Completed | 2026-06-15 |
review-ietf-regext-epp-quic-09-secdir-lc-ounsworth-2026-06-15-00
I have reviewed this document as part of the security directorate's ongoing effort to review all IETF documents being processed by the IESG. These comments were written primarily for the benefit of the security area directors. Document editors and WG chairs should treat these comments just like any other last call comments. The summary of the review is that I think the new packet framing format defined in section 5, while simple, may require some more thinking about whether some additional error handling can be specified that would make it more robust to accidental or malicious mismatching of the length field to the actual length of the payload. Detailed comments: SecDir review for draft-ietf-regext-epp-quic-09 Section 5: 2^32 bytes (4 gb) can be quite a large network payload, and could lead to resource exhaustion issues. Perhaps you want to recommend that implementations keep a max EPP Data Unit size that they are willing to accept; ie check the length header, make sure it's under the configured limit, then proceed to reading the EPP XML payload. You're specifying here a new Length-Value data encoding, so we need to ask what happens if the Length is set incorrectly (either accidentally or maliciously), and think about how to make parsers robust to that. Also, what happens if the Total Length declared in the header does not match the actual EPP XML? This is the sort of thing that lead to the openssl heartbleed vulnerability, so if section 5 can specify some error handling that would make this more robust to maliciously or accidentally incorrect length fields, that would be good. For a length tag shorter than the actual payload; in the accidental case you'll end up with a busted unparsable XML document, and probably a messed up QUIC stream since there'll be a bunch of extra junk in there that's not accounted for. Probably this is fatal to the connection and it should just be closed? Is there a malicious case? I guess that would be to construct an OWASP Top 10 Request Smuggling payload where the XML payload is a properly closed XML document followed by the bytes of a properly-encoded new EPP message and the length field points at the end of the XML doc. From the protocol's perspective, this is probably just normal stream data and not a problem; so maybe it's only worth a note that in order to protect against request smuggling attacks, implementations SHOULD be careful to actually count the byte length of the payload they have been given instead of trusting an application to correctly give them both the payload and its length. To detect a length field longer than the actual payload, is it possible to specify that if the EPP XML parser hits the end of the XML document before the end of the declared length, should it refuse to process it with an XML parser and instead kill the connection? That would have the net effect that buggy implementations would not be tolerated and would hopefully get caught before making it to prod. Operational Considerations 10.7 and 10.8 are also Security Considerations, so should probably be copied / referenced from 11. Security Considerations.