mediumCVSS 5.5Vulnerability

CVE-2026-79767

## Overview The `manage-members` custom verb authorization check in the Gardener API server's `customverbauthorizer` admission plugin can be bypassed by adding `Group` or `ServiceAccount` subjects to a Project's member list. The check is documented as controlling "human users or groups", but the implementation only gates changes to `User`-kind subjects. A project admin (without `manage-members` permission) can add arbitrary Group subjects - including `system:authenticated` - granting all authenticated users full project-level access. ## Technical Details The official Gardener documentation at `docs/usage/project/projects.md:90-92` explicitly states: <img width="2090" height="290" alt="image" src="https://github.com/user-attachments/assets/744f5d6f-1e03-47b5-9dc5-36f20b7e6f4b" /> However, the `mustCheckProjectMembers()` function at `admission.go` compares old and new member lists using `findHumanUsersWithRoles()`, which only tracks subjects where `isHumanUser()` returns true: ```go func mustCheckProjectMembers(oldMembers, members []core.ProjectMember, owner *rbacv1.Subject, userInfo user.Info) bool { if apiequality.Semantic.DeepEqual(oldMembers, members) { return false } if userIsOwner(userInfo, owner) { return false } var oldHumanUsers, newHumanUsers = findHumanUsersWithRoles(oldMembers), findHumanUsersWithRoles(members) // ... return !oldHumanUsers.Equal(newHumanUsers) } ``` The `isHumanUser()` function at `admission.go` only matches `Kind == "User"`: ```go func isHumanUser(subject rbacv1.Subject) bool { return subject.Kind == rbacv1.UserKind && !strings.HasPrefix(subject.Name, serviceaccount.ServiceAccountUsernamePrefix) } ``` Kind: "Group" subjects are NOT matched by `isHumanUser()`, making Group member changes invisible to the authorization check. A project admin without manage-members permission can freely add or remove Group members. ## Steps to reproduce <img width="4322" height="1395" alt="image" src="https:

Properties

ghsa_id
GHSA-gfjv-gqf2-c888
severity
medium
summary
Gardener: Authorization Bypass via Group Subject Injection
cvss_score
5.5
cve_id
CVE-2026-79767
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:N
signal_observed_at
2026-09-23T04:35:56+00:00
is_ghsa_only
false
ghsa_published
2026-09-22T20:40:38Z
source_url
https://github.com/advisories/GHSA-gfjv-gqf2-c888
ghsa_updated
2026-09-22T20:40:43Z

Related Entities (6)

VULNERABLE_TO (2)

[Software]go/gardener/gardener
[Software]go/github.com/gardener/gardener

AFFECTS (2)

[Software]go/github.com/gardener/gardener
[Software]go/gardener/gardener

HAS_WEAKNESS (1)

[Weakness]Incorrect Authorization

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-79767 (CVSS 5.5) — Ninja Signal Threat Intelligence | Ninja Signal