GitHub Advisoryadvisory · Go
GHSA-mq6f-5xh5-hgcf Harbor timing attack risk
MEDIUM
Official page ↗
- Aliases
- CVE-2023-20902
- Ecosystem
- Go
- Packages
- github.com/goharbor/harbor
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-208, CWE-362
- Reviewed
- 2023-10-10
Affected packages
• Go github.com/goharbor/harbor: < 1.10.18 → fixed in 1.10.18
• Go github.com/goharbor/harbor: >= 2.0.0, < 2.7.3 → fixed in 2.7.3
• Go github.com/goharbor/harbor: >= 2.8.0, < 2.8.3 → fixed in 2.8.3
Description
In the Harbor jobservice container, the comparison of secrets in the authenticator type is prone to timing attacks. The vulnerability occurs due to the following code: https://github.com/goharbor/harbor/blob/aaea068cceb4063ab89313d9785f2b40f35b0d63/src/jobservice/api/authenticator.go#L69-L69
To avoid this issue, constant time comparison should be used.
```
subtle.ConstantTimeCompare([]byte(expectedSecret), []byte(secret)) == 0
```
Impact
This attack might be possible theoretically, but no workable proof of concept is available, and access complexity is set at High.
The jobservice exposes these APIs
```
Create a job task --- POST /api/v1/jobs
Get job task information --- GET /api/v1/jobs/{job_id}
Stop job task --- POST /api/v1/jobs/{job_id}
Get job log task --- GET /api/v1/jobs/{job_id}/log
Get job execution --- GET /api/v1/jobs/{job_id}/executions
Get job stats --- GET /api/v1/stats
Get job service configuration --- GET /api/v1/config
```
It is used to create jobs/stop job tasks and retrieve job task information. If an attacker obtains the secrets, it is possible to retrieve the job information, create a job, or stop a job task.
The following versions of Harbor are involved:
<=Harbor 2.8.2, <=Harbor 2.7.2, <= Harbor 2.6.x, <=Harbor 1.10.17
Patches
Harbor 2.8.3, Harbor 2.7.3, Harbor 1.10.18
Workarounds
Because the jobservice only exposes HTTP service to harbor-core containers, blocking any inbound traffic from the external network to the jobservice container can reduce the risk.
Credits
Thanks to Porcupiney Hairs for reporting this issue.
Related
Alias · CVE (1)
- CVE-2023-20902 A timing condition in Harbor 2.6.x and below, Harbor 2.7.2 and below, Harbor 2.8.2 and below, and Harbor 1.10.17 and below allows an… vulnerability
References
- https://github.com/goharbor/harbor/security/advisories/GHSA-mq6f-5xh5-hgcf web
- https://nvd.nist.gov/vuln/detail/CVE-2023-20902 advisory
- https://github.com/goharbor/harbor package
- https://github.com/goharbor/harbor/blob/aaea068cceb4063ab89313d9785f2b40f35b0d63/src/jobservice/api/authenticator.go#L69-L69 web
- https://github.com/goharbor/harbor/releases/tag/v1.10.18 web
- https://github.com/goharbor/harbor/releases/tag/v2.7.3 web
- https://github.com/goharbor/harbor/releases/tag/v2.8.3 web