18

Yubico Security advisory 2020-03-03: Insufficient data validation in yubikey-val

 4 years ago
source link: https://www.yubico.com/support/security-advisories/ysa-2020-01/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Security advisory 2020-03-03 – insufficient data validation in yubikey-val

Tracking ID: YSA-2020-01, CVE-2020-10184 , CVE-2020-10185

Summary

Yubico received a report from LinkedIn Information Security indicating there is insufficient data validation in the open-source project for YubiKey Validation Server ( git: yubikey-val ). Yubico verified the issue and has made a security update available to mitigate this issue and enhance the validation of information sent to the APIs. The next major release of the YubiKey Validation Server will become available by July 2020. 

This issue potentially affects developers, partners, and customers who have used a YubiKey Validation Server to build a self-hosted one-time password (OTP) validation service. The default configuration of the service only exposes the verify API, which could allow an attacker to perform a denial of service, potentially preventing legitimate authentications. Additionally, if the configuration has been modified to expose the sync API, then this vulnerability could potentially be used by an attacker to replay a previously used OTP.

Affected software

YubiKey Validation Server releases 2.39 and prior: available from https://github.com/Yubico/yubikey-val

Affected Yubico devices and services

None. This advisory only pertains to the YubiKey Validation Server project. It does not affect any  YubiKey Series, Security Key Series, YubiKey firmware, or YubiCloud Service.

Customer actions

If you are managing an implementation of a YubiKey Validation Server, update your deployment to version 2.40 of YubiKey Validation Server (available https://github.com/Yubico/yubikey-val ) to mitigate this issue. Also confirm that the configuration of your service does not unnecessarily expose API endpoints .

How to check your sync API configuration

  1. Go to your configuration script (ykval-config.php)
  2. Look for the following lines:
 $baseParams[‘__YKVAL_ALLOWED_SYNC_POOL__’] = array(
// “1.2.3.4”,
// “2.3.4.5”,
// “3.4.5.6”,
// “fc00:aaaa::”,
// “fc00:bbbb::”,
// “fc00:cccc::”,
);
  1. If there are uncommented IP addresses listed in this array, then these hosts are allowed to use your sync API, and interact with the affected code. These IP addresses should be limited to nodes participating in the sync pool.
  2. If there are no uncommented IP addresses listed in this array, then no hosts are allowed to use the sync API. 

Technical details

There are four API endpoints that can be exposed: verify, sync, resync, and revoke. By default, the verify endpoint is the only API exposed without an IP whitelist. YubiKey Validation Server does not have sufficient input validation implemented in the verify and sync APIs. Insufficient input validation could allow an attacker to perform SQL injection attacks. The level of impact of the SQL injection varies depending on the configuration of the YubiKey Validation Server instance. Verify performs basic validation on all fields prior to executing database queries but does not check length. An attacker could abuse this issue by submitting a large entry to be input into the database, which could cause a denial of service. 

Sync does not perform consistent validation on received parameters prior to executing database queries. However, only sources that are defined in the __YKVAL_ALLOWED_SYNC_POOL__ are allowed to call the sync API, which limits the exposure of this issue. The default configuration does not define any allowed sources for the sync API, meaning all attempts to call the sync API will be denied. YubiKey Validation Server implementers may add IP addresses to the sync pool to enable syncing between multiple validation servers. An attacker with an allowed IP address could potentially use this vulnerability to replay an OTP.

Frequently asked questions

How do I sign up for security or product updates?

To sign up for security or product updates via email, visit our email subscription page: https://pages.yubico.com/email_subscription.html

Is YubiCloud affected?

No, YubiCloud is not affected.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK