PT-2020-16534 · Jwt+1 · Jwt Library+2

Phil Pennock

·

Published

2020-11-06

·

Updated

2022-07-15

·

CVE-2020-26892

CVSS v3.1

9.8

Critical

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions NATS nats-server versions 2.0.0 through 2.1.8 JWT library versions prior to 1.1.0
Description The issue is related to Incorrect Access Control in the JWT library used by NATS nats-server, specifically in how expired credentials are handled. The IsRevoked and Export.IsRevoked functions improperly validate expired credentials using the current system time rather than the issue time of the JWT. This results in time-based credential expiry not working. A new IsClaimRevoked method has been introduced with correct handling, and the nats-server has been updated to use this method. The old IsRevoked method now always returns true, and other client code will have to be updated to avoid calling it.
Recommendations For NATS nats-server versions 2.0.0 through 2.1.8, upgrade to version 2.1.9 or later. For JWT library versions prior to 1.1.0, upgrade the JWT dependency to version 1.1.0 or later. As a temporary workaround, consider having credentials that only expire after fixes can be deployed. Avoid using the IsRevoked method in the affected JWT library until the issue is resolved.

Fix

Improper Access Control

Using Hardcoded Credentials

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2020-26892
GHSA-2C64-VJ8G-VWRQ
GHSA-4W5X-X539-PPF5
GO-2022-0380

Affected Products

Jwt Library
Nats
Nats Server