[Bug 264598] libradius invalid Message-Authenticator in retransmit packet
Date: Fri, 10 Jun 2022 16:00:49 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264598 Bug ID: 264598 Summary: libradius invalid Message-Authenticator in retransmit packet Product: Base System Version: Unspecified Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: standards Assignee: standards@FreeBSD.org Reporter: hwlin1414@cs.nctu.edu.tw When libradius retransmit packets, the insert_message_authenticator function is called and calculated again with old Message-Authenticator checksum. It cause the Message-Authenticator set to the wrong checksum in retransmit packet. According to RFC-2869 https://datatracker.ietf.org/doc/html/rfc2869#section-5.14 > When the checksum is calculated the signature string should be > considered to be sixteen octets of zero. A possible fix maybe: --- a/radlib.c +++ b/radlib.c @@ -160,6 +160,8 @@ insert_message_authenticator(struct rad_handle *h, int resp) srvp = &h->servers[h->srv]; if (h->authentic_pos != 0) { + memset(&h->out[h->authentic_pos + 2], 0, MD5_DIGEST_LENGTH); + ctx = HMAC_CTX_new(); HMAC_Init_ex(ctx, srvp->secret, strlen(srvp->secret), EVP_md5(), NULL); HMAC_Update(ctx, &h->out[POS_CODE], POS_AUTH - POS_CODE); -- You are receiving this mail because: You are the assignee for the bug.