🔍 CVE-2023-27483

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

🇰🇷 한글 설명

crossplane-runtime 라이브러리의 fieldpath 패키지 내 Paved 타입의 SetValue 메서드에서 메모리 부족(OOM) 패닉 취약점이 발견되었습니다. 사용자 입력값이 적절한 검증 없이 전달될 경우, 매우 큰 인덱스를 사용하여 슬라이스 크기를 비정상적으로 확장함으로써 과도한 메모리를 점유할 수 있습니다.

💡 쉬운 설명

공격자가 조작된 데이터를 보내면 프로그램이 감당할 수 없을 만큼의 메모리를 사용하게 만들어 시스템을 멈추게 할 수 있습니다. 이는 마치 빈 상자에 너무 많은 물건을 넣으려고 시도하여 상자가 터져버리는 것과 같습니다.

🇺🇸 원문 (English)

crossplane-runtime is a set of go libraries used to build Kubernetes controllers in Crossplane and its related stacks. An out of memory panic vulnerability has been discovered in affected versions. Applications that use the `Paved` type's `SetValue` method with user provided input without proper validation might use excessive amounts of memory and cause an out of memory panic. In the fieldpath package, the Paved.SetValue method sets a value on the Paved object according to the provided path, without any validation. This allows setting values in slices at any provided index, which grows the target array up to the requested index, the index is currently capped at max uint32 (4294967295) given how indexes are parsed, but that is still an unnecessarily large value. If callers are not validating paths' indexes on their own, which most probably are not going to do, given that the input is parsed directly in the SetValue method, this could allow users to consume arbitrary amounts of memory. Applications that do not use the `Paved` type's `SetValue` method are not affected. This issue has been addressed in versions 0.16.1 and 0.19.2. Users are advised to upgrade. Users unable to upgrade can parse and validate the path before passing it to the `SetValue` method of the `Paved` type, constraining the index size as deemed appropriate.

📍 영향받는 시스템

crossplane-runtime (0.16.1 및 0.19.2 미만 버전)

⚔️ 공격 벡터

검증되지 않은 사용자 입력값이 Paved.SetValue 메서드의 경로 인덱스로 전달되어 대규모 메모리 할당 유도

🛡️ 대응 방법

crossplane-runtime을 0.16.1 또는 0.19.2 이상의 버전으로 업그레이드하거나, SetValue 호출 전 경로 인덱스 크기를 직접 검증해야 합니다.

🔧 검증 코드

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

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

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Kubernetes