"Alan DeKok" <aland@freeradius.org> writes:
> CheckRADIUSAuth() in src/backend/libpq/auth.c is subject to spoofing attacks
> which can force all RADIUS authentications to fail.
> ...
> The source IP/port/RADIUS ID && authentication vector fields are checked
> *after* the socket is closed. This allows an attacker to "race" the RADIUS
> server, and spoof the response, forcing PostgreSQL to treat the
> authentication as failed.
[ scratches head ... ] I don't see the problem. AFAICS the "verify
packet" code is just looking at local storage. Where is the spoofing
possibility, and why would delaying the socket close accomplish
anything?
regards, tom lane