GHSA-hw28-333w-qxp3 BIT-harbor-2024-22278 CVE-2024-22278 GO-2024-3013
Harbor fails to validate the user permissions when updating project configurations
- Severity
- 0.0 / 10
- Medium · CVSS 4.0
- Exploit chance (EPSS)
- 0.36%
- Chance of exploitation in the next 30 days. Higher than 30.36% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-269 Improper Privilege Management
- Fix
2.9.5- Upgrade github.com/goharbor/harbor to this version or later
Description
Impact
Harbor fails to validate the maintainer role permissions when creating/updating/deleting project configurations - API call:
- PUT /projects/{project_name_or_id}/metadatas/{meta_name}
- POST /projects/{project_name_or_id}/metadatas/{meta_name}
- DELETE /projects/{project_name_or_id}/metadatas/{meta_name}
By sending a request to create/update/delete a metadata with an name that belongs to a project that the currently authenticated and granted to the maintainer role user doesn’t have access to, the attacker could modify configurations in the current project.
BTW: the maintainer role in Harbor was intended for individuals who closely support the project admin in maintaining the project but lack configuration management permissions. However, the maintainer role can utilize the metadata API to circumvent this limitation. It's important to note that any potential attacker must be authenticated and granted a specific project maintainer role to modify configurations, limiting their scope to only that project.
Patches
Will be fixed in v2.9.5, v2.10.3 and v2.11.0
Workarounds
There are no workarounds available.
Credit
Thanks to Ravid Mazon(rmazon@paloaltonetworks.com), Jay Chen (jaychen@paloaltonetworks.com) Palo Alto Networks for reporting this issue.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| github.com/goharbor/harbor | < 2.9.5 |
2.9.5 |
| github.com/goharbor/harbor | >= 2.10.0, < 2.10.3 |
2.10.3 |
| github.com/goharbor/harbor | < 2.9.5+incompatible>= 2.10.0+incompatible, < 2.10.3+incompatible |
2.9.5+incompatible2.10.3+incompatible |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
github.com/goharbor/harbor Go → 2.9.5
- go
go get github.com/goharbor/harbor@v2.9.5 && go mod tidy
Severity breakdown
CVSS 4.0 0.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:H/SC:L/SI:L/SA:N
- Attack vector
- Network
- Attack complexity
- Low
- Attack requirements
- None
- Privileges required
- High
- User interaction
- None
- Confidentiality (vulnerable system)
- Low
- Integrity (vulnerable system)
- Low
- Availability (vulnerable system)
- High
- Confidentiality (subsequent systems)
- Low
- Integrity (subsequent systems)
- Low
- Availability (subsequent systems)
- None
CVSS 3.1 5.5
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- High
- User interaction
- None
- Scope
- Changed
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Weakness
CWE-269: Improper Privilege Management
The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
How to prevent it
- Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
- Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system.
- Architecture and Design: Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-prh4-vhfh-24mj Harbor: LDAP password and OIDC secret are not redacted in the audit log | Medium | Also affects github.com/goharbor/harbor |
| GHSA-hj7x-hmf2-hc2p Harbor allows the use of the default password for web UI login | Critical | Also affects github.com/goharbor/harbor |
| GHSA-h27m-3qw8-3pw8 Possible ORM Leak Vulnerability in the Harbor | Medium | Also affects github.com/goharbor/harbor |
| GHSA-f9vc-vf3r-pqqq Harbor repository description page has Cross-site Scripting vulnerability | Medium | Also affects github.com/goharbor/harbor |
| GHSA-r864-28pw-8682 Harbor fails to validate the user permissions when updating p2p preheat policies | High | Also affects github.com/goharbor/harbor |
| GHSA-vw63-824v-qf2j SQL Injection in Harbor scan log API | Medium | Also affects github.com/goharbor/harbor |
| GHSA-5757-v49g-f6r7 Open Redirect URL in Harbor | Medium | Also affects github.com/goharbor/harbor |
| GHSA-mq6f-5xh5-hgcf Harbor timing attack risk | Medium | Also affects github.com/goharbor/harbor |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor