blob: 48d4516ee8808fe5d570d648dc701fb50c56d7a1 [file] [log] [blame]
{
"schema_version": "1.3.1",
"id": "GO-2024-2608",
"modified": "0001-01-01T00:00:00Z",
"published": "0001-01-01T00:00:00Z",
"aliases": [
"CVE-2024-27916",
"GHSA-v627-69v2-xx37"
],
"summary": "Minder access control bypass in github.com/stacklok/minder",
"details": "A Minder user can use the endpoints to access any repository in the DB, irrespective of who owns the repo and any permissions that user may have. The DB query used checks by repo owner, repo name and provider name (which is always \"github\"). These query values are not distinct for the particular user, as long as the user has valid credentials and a provider, they can set the repo owner/name to any value they want and the server will return information on this repo. DeleteRepositoryByName uses the same query and a user can delete another user's repo using this technique. The GetArtifactByName endpoint also uses this DB query.",
"affected": [
{
"package": {
"name": "github.com/stacklok/minder",
"ecosystem": "Go"
},
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.0.33"
}
]
}
],
"ecosystem_specific": {
"imports": [
{
"path": "github.com/stacklok/minder/internal/db",
"symbols": [
"Queries.GetRepositoryByRepoName"
]
},
{
"path": "github.com/stacklok/minder/internal/controlplane",
"symbols": [
"EntityContextProjectInterceptor",
"ProjectAuthorizationInterceptor",
"Server.DeleteRepositoryByName",
"Server.GetArtifactByName",
"Server.GetRepositoryByName",
"Server.StartGRPCServer",
"TokenValidationInterceptor"
]
}
]
}
}
],
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/stacklok/minder/security/advisories/GHSA-v627-69v2-xx37"
},
{
"type": "FIX",
"url": "https://github.com/stacklok/minder/commit/45750b4e9fb2de33365758366e06c19e999bd2eb"
}
],
"credits": [
{
"name": "dmjb"
}
],
"database_specific": {
"url": "https://pkg.go.dev/vuln/GO-2024-2608"
}
}