[RADIATOR] OSC Security advisory OSC-SEC-2014-01: Vulnerability in OSC Radiator EAP authentication could allow unauthenticated access

2014-12-04 Thread Heikki Vatiainen
For HTML version, please see:
https://www.open.com.au/OSC-SEC-2014-01.html

Open System Consultants (OSC)
Security Advisory OSC-SEC-2014-01
Vulnerability in OSC Radiator EAP authentication could allow 
unauthenticated access

Published: December 3, 2014 10:00 am UTC | Updated December 4, 2014 8:00 
am UTC

Summary
++
A bug exists in Radiator Extended Authentication Protocol (EAP)
implementation where a malicious client could bypass EAP method
restrictions. A vulnerability caused by this bug was discovered in
recent Radiator releases and requires urgent attention.

This EAP bug together with an EAP method released in Radiator 4.10
create a vulnerability which could allow a malicious EAP client to
gain unauthorised access from Radiator. A successful exploitation
requires specially crafted EAP client software.

The bug and the vulnerability were discovered by OSC's development
team. OSC is not aware of public use of this vulnerability.


Affected Radiator versions
+
1. The vulnerability affects Radiator versions 4.9 + patches, 4.10 and 
up to 4.13.
2. The EAP bug affects all Radiator versions up to 4.13.


Affected Radiator configurations
+
The EAP bug affects Radiator configurations which authenticate EAP
messages. If your Radiator does not receive EAP messages, it is not
affected.

Radiator installations proxying EAP messages are not affected if they
do not also authenticate EAP messages.


Recommended action
++
OSC recommends upgrading to Radiator 4.14. If you cannot upgrade at
this time, install backport to fix the EAP bug.


* Download and upgrade to Radiator 4.14, or
* Download Radiator 4.14, unpack the distribution package and install 
backport from goodies/Radiator-4.14-EAP-backport/ directory. OSC has 
created backports with release notes for previous Radiator releases
* Restart Radiator after the upgrade or backport installation


Mitigation of the vulnerability
+++
If your Radiator version is vulnerable and you cannot upgrade or apply
backports at this time, OSC recommends removing the EAP method
released with Radiator 4.10 to remove the known vulnerability

* If you run Radiator release 4.9 with patches, 4.10 or later up to 
4.13, locate any instances of a file named EAP_16776957_4244372217.pm 
and remove them.
* This file can be safely removed, since it is not needed in production 
environment
* Restart Radiator when you have removed the files.


Questions and Answers
+++
What might an attacker use this vulnerability to do?
An attacker could gain access to an authenticated resource without
valid credentials. The authentication method must be based on the EAP
protocol. Common examples are Wi-Fi networks with WPA-Enterprise and
WPA2-Enterprise authentication.


What is required to exploit this vulnerability?
The attacker needs to develop a custom EAP supplicant (client
software) to send specially crafted EAP messages.


What is the difference between the vulnerability and the EAP bug?
The EAP method restriction bypass is a bug which may cause further
vulnerabilities if left unfixed. OSC strongly recommends upgrading to
Radiator 4.14 or installing a backport included in the Radiator 4.14
distribution package to fix the bug.

The EAP bug together with the test EAP method introduced in Radiator
4.9 + patches create the vulnerability which could be used to gain
unauthorised access. OSC considers this as a vulnerability which
requires urgent attention.


-- 
Heikki Vatiainen 

Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, 
NetWare etc.
___
radiator mailing list
radiator@open.com.au
http://www.open.com.au/mailman/listinfo/radiator


[RADIATOR] Radiator Version 4.14 released - includes a fix for EAP authentication vulnerability

2014-12-04 Thread Heikki Vatiainen
We are pleased to announce the release of Radiator version 4.14

This version contains a fix for an EAP authentication vulnerability. 
Upgrade is strongly recommended. Please review OSC security advisory 
OSC-SEC-2014-01 for more information:
https://www.open.com.au/OSC-SEC-2014-01.html

As usual, the new version is available to current licensees from:
https://www.open.com.au/radiator/downloads/

and to current evaluators from:
https://www.open.com.au/radiator/demo-downloads

Licensees with expired access contracts can renew at:
https://www.open.com.au/renewal.html

An extract from the history file
https://www.open.com.au/radiator/history.html is below:

-

Revision 4.14 (2014-12-03)

 Selected fixes, compatibility notes and enhancements

Fixes a vulnerability and very significant bug in EAP authentication.
OSC recommends all users to review OSC security advisory
OSC-SEC-2014-01 to see if they are affected.
https://www.open.com.au/OSC-SEC-2014-01.html

Client findAddress() was changed to lookup CIDR clients before DEFAULT
client. Affects ServerTACACSPLUS and in some cases SessionDatabase
modules.

Added support for non-blocking sockets on Windows

SessionDatabase SQL queries now support bind variables



 Detailed changes

Added VENDOR Allot 2603 and VSA Allot-User-Role to dictionary.

Added Diameter AVP flag hints in the Diameter Credit-Control
Application dictionary.

Prevented crash during startup when configured to support a Diameter
application for which no dictionary module was not present. Reported
by Arthur. Improved logging of loading of Diameter application
dictionary modules.

Improvements to AuthBy SIP2 to add support for SIP2Hook. SIP2Hook can
be used for patron authorisation and/or authentication. Added an
example hook goodies/sip2hook.pl. Added a new optional parameter
UsePatronInformationRequest for configurations in which Patron Status
Request is not sufficient.

Fixed a problem with SNMPAgent which could cause a crash if the
configuration had no Clients.

Stream and StreamServer sockets are now set to nonblocking mode on
Windows too. This allows for example, RadSec to use nonblocking
sockets on Windows.

radpwtst now honours -message_authenticator option for all request
types specified with the -code parameter.

Client.pm findAddress() was changed to look up CIDR clients before
DEFAULT client. This is the same order Client lookup for incoming
RADIUS requests uses. This affects mostly
ServerTACACSPLUS. SessionDatabase DBM, INTERNAL and SQL also use
findAddress() and are affected when Clients have NasType configured
for Simultaneous-Use online checking. Client lookup was simplified in
ServerTACACSPLUS.

Added VENDOR Cambium 17713 and four Cambium-Canopy VSAs to
dictionary. "RADIUS Attributes for IEEE 802 Networks" is now RFC
7268. Updated some of its attribute types.

AuthBy MULTICAST now checks first, not after, if the next hop host is
working before creating the request to forward. This will save cycles
when the next hop is not working.

Added VENDOR Apcon 10830 and VSA Apcon-User-Level to
dictionary. Contributed by Jason Griffith.

Added support for custom password hashes and other user defined
password check methods. When the new configuration parameter
CheckPasswordHook is defined for an AuthBy and the password retrieved
from the user database starts with leading '{OSC-pw-hook}', the
request, the submitted password and the retrieved password are passed
to the CheckPasswordHook. The hook must return true if the submitted
password is deemed correct. TranslatePasswordHook runs before
CheckPasswordHook and can be used to add '{OSC-pw-hook}' to the
retrieved passwords.

AuthLog SYSLOG and Log SYSLOG now check LogOpt during the
configuration check phase. Any problems are now logged with the
loggers Identifier.

The defaults for SessionDatabase SQL AddQuery and CountQuery now use
%0 where username is needed. Updated the documentation to clarify the
value of %0 for AddQuery, CountQuery, ReplaceQuery, UpdateQuery and
DeleteQuery: %0 is the quoted original username. However, if
SessionDatabaseUseRewrittenName is set for the Handler and the check
is done by Handler (MaxSessions) or AuthBy (DefaultSimultaneousUse),
then %0 is the rewritten username. For per-user session database
queries %0 is always the original username. Updated the documentation
for CountQuery to include %0 and %1. For CountQuery %1 is the value of
the simultaneous use limit.

Enhanced resolution of vendor names to Vendor-Id values for
SupportedVendorIds, VendorAuthApplicationIds and
VendorAcctApplicationIds. Keyword DictVendors for SupportedVendorIds
now includes vendors from all dictionaries that are loaded. Vendor
name in Vendor*ApplicationIds can be in any of the loaded dictionaries
in addition of being listed in DiaMsg module.

Added VENDOR InMon 4300 and VSA InMon-Access-Level to
dictionary. Contributed by Garry Shtern.

Added ReplyTimeoutHook to AuthBy RADIUS, called if no reply is hear