🔍 CVE-2026-24748

0.0
CVSS Score
UNKNOWN
2026-01-27
2026-01-27 22:15
✅ 완료

🇰🇷 한글 설명

Kargo 소프트웨어 아티팩트 자동화 및 관리 도구에서 인증 체크 버그가 발견되었습니다. 이 버그는 인증되지 않은 사용자가 GetConfig() API 엔드포인트에 접근할 수 있도록 허용했으며, 이는 구성 데이터의 유출을 가능하게 했습니다. 이 문제는 Kargo 버전 1.8.7, 1.7.7, 및 1.6.3에서 패치되었습니다.

💡 쉬운 설명

Kargo 소프트웨어에서 인증 체크 버그가 발견되어 공격자가 시스템 구성 데이터에 접근할 수 있습니다. 이는 공격자가 추가적인 공격을 수행할 수 있는 정보를 얻을 수 있습니다. 이 버그는 Kargo의 최신 버전에서 패치되었습니다.

🇺🇸 원문 (English)

Kargo manages and automates the promotion of software artifacts. Prior to versions 1.8.7, 1.7.7, and 1.6.3, a bug was found with authentication checks on the `GetConfig()` API endpoint. This allowed unauthenticated users to access this endpoint by specifying an `Authorization` header with any non-empty `Bearer` token value, regardless of validity. This vulnerability did allow for exfiltration of configuration data such as endpoints for connected Argo CD clusters. This data could allow an attacker to enumerate cluster URLs and namespaces for use in subsequent attacks. Additionally, the same bug affected the `RefreshResource` endpoint. This endpoint does not lead to any information disclosure, but could be used by an unauthenticated attacker to perform a denial-of-service style attack against the Kargo API. `RefreshResource` sets an annotation on specific Kubernetes resources to trigger reconciliations. If run on a constant loop, this could also slow down legitimate requests to the Kubernetes API server. This problem has been patched in Kargo versiosn 1.8.7, 1.7.7, and 1.6.3. There are no workarounds for this issue.

📍 영향받는 시스템

Kargo 버전 1.8.6 이전, 1.7.6 이전, 1.6.2 이전

⚔️ 공격 벡터

인증되지 않은 사용자가 Authorization 헤더에 유효하지 않은 Bearer 토큰 값을 지정하여 GetConfig() API 엔드포인트에 접근

🛡️ 대응 방법

Kargo를 버전 1.8.7, 1.7.7, 또는 1.6.3로 업데이트합니다.

🔧 검증 코드

이 코드는 로컬 시스템의 Kargo API에 접근하여 인증 체크 버그가 존재하는지 확인합니다. 코드를 실행하기 전에 Kargo가 설치되어 있는지 확인하고, 필요한 권한을 가지고 있는지 확인합니다. 코드를 실행하면 GetConfig() API 엔드포인트에 접근할 수 있는지 여부를 확인하여 취약점 여부를 판단합니다.

Shell / Script
python -c "import requests; response = requests.get('https://localhost:8080/api/config', headers={'Authorization': 'Bearer invalid_token'}); if response.status_code == 200: print('{"result": "취약", "reason": "GetConfig() API 엔드포인트에 접근 가능"}'); else: print('{"result": "양호", "reason": "GetConfig() API 엔드포인트에 접근 불가능"}')"

💻 영향받는 소프트웨어

Kubernetes