CVE-2020-36569: golang-nanoauth authentication bypass vulnerability
9.1
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.23262%
CWE
Published
12/28/2022
Updated
2/3/2023
KEV Status
No
Technology
Go
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| github.com/nanobox-io/golang-nanoauth | go | >= 0.0.0-20160722212129-ac0cc4484ad4, < 0.0.0-20200131131040-063a3fb69896 | 0.0.0-20200131131040-063a3fb69896 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stemmed from two key issues: 1) Global 'check' variable that could disable authentication when empty token was passed to Listen* functions 2) Missing validation for empty tokens in server initialization. The pre-patch code in both ListenAndServe and ListenAndServeTLS would set check=false when token was empty, bypassing authentication checks in ServeHTTP. The patch added mandatory token validation (errors.New if empty) and removed the global 'check' variable, confirming these functions were the entry points for the vulnerability.