Skip to content

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

Medium Go
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

PackageVulnerableFixed 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+incompatible
2.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

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy 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
Is this in your code?

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