🔍 CVE-2023-27484

6.2
CVSS Score
MEDIUM
2023-03-09
2026-06-17 05:45
✅ 완료

🇰🇷 한글 설명

crossplane-runtime 라이브러리에서 권한이 있는 사용자가 Composition의 patch 내 ToFieldPath에 매우 큰 인덱스를 지정할 수 있는 취약점이 발견되었습니다. 이로 인해 Composite 리소스 생성 시 슬라이스 크기가 비정상적으로 확장되어 과도한 메모리를 사용하고 Pod가 OOM-Killed될 수 있습니다.

💡 쉬운 설명

이미 권한을 가진 사용자가 시스템 설정 파일에 아주 큰 숫자를 입력하여 컴퓨터의 메모리를 순식간에 가득 채우게 만들 수 있는 문제입니다. 이로 인해 서비스가 갑자기 멈추거나 강제 종료될 수 있습니다.

🇺🇸 원문 (English)

crossplane-runtime is a set of go libraries used to build Kubernetes controllers in Crossplane and its related stacks. In affected versions an already highly privileged user able to create or update Compositions can specify an arbitrarily high index in a patch's `ToFieldPath`, which could lead to excessive memory usage once such Composition is selected for a Composite resource. Compositions allow users to specify patches inserting elements into arrays at an arbitrary index. When a Composition is selected for a Composite Resource, patches are evaluated and if a specified index is greater than the current size of the target slice, Crossplane will grow that slice up to the specified index, which could lead to an excessive amount of memory usage and therefore the Pod being OOM-Killed. The index is already capped to the maximum value for a uint32 (4294967295) when parsed, but that is still an unnecessarily large value. This issue has been addressed in versions 1.11.2, 1.10.3, and 1.9.2. Users are advised to upgrade. Users unable to upgrade can restrict write privileges on Compositions to only admin users as a workaround.

📍 영향받는 시스템

crossplane-runtime (1.11.2, 1.10.3, 1.9.2 미만 버전)

⚔️ 공격 벡터

권한이 있는 사용자가 Composition의 patch 설정 내 ToFieldPath에 매우 높은 인덱스 값을 입력하여 메모리 고갈 유도

🛡️ 대응 방법

crossplane-runtime을 1.11.2, 1.10.3 또는 1.9.2 이상의 버전으로 업그레이드하거나 Composition에 대한 쓰기 권한을 관리자로 제한

🔧 검증 코드

출력된 결과에서 crossplane-runtime의 버전을 확인하여 취약한 버전인지 체크합니다.

Shell / Script
go list -m all | grep crossplane-runtime

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H

💻 영향받는 소프트웨어

Kubernetes