🇰🇷 한글 설명
Fission 1.25.0 미만 버전은 리눅스 기능(Capabilities) 검증 시 CAP_SYS_TIME을 누락한 고정된 차단 목록을 사용하여 보안 취약점이 존재합니다. 이로 인해 악의적인 사용자가 SYS_TIME 권한을 획득하여 컨테이너 내에서 공격자 제어 코드를 실행할 수 있습니다.
💡 쉬운 설명
Fission의 보안 필터가 일부 권한을 제대로 차단하지 못해, 공격자가 시스템 시간을 조작할 수 있는 권한을 얻어낼 수 있습니다. 이는 서버의 시간 설정을 변경하거나 관련 보안 기능을 우회하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. Prior to version 1.25.0, Fission added PodSpec safety validation for tenant-facing Environment and Function CRDs (ValidatePodSpecSafety / ValidateContainerSafety admission webhook + sanitizeContainerSecurityContext executor merge layer), but the capability check was implemented as a fixed denylist of six Linux capabilities (SYS_ADMIN, NET_ADMIN, SYS_PTRACE, SYS_MODULE, DAC_READ_SEARCH, DAC_OVERRIDE). The denylist omitted CAP_SYS_TIME, among others. As a result, a tenant who could create a Function or Environment CRD could request securityContext.capabilities.add: ["SYS_TIME"], pass Fission's admission validation and merge-layer sanitization, and run attacker-controlled code with CAP_SYS_TIME in the resulting function or runtime container. This issue has been patched in version 1.25.0.
📍 영향받는 시스템
Fission version < 1.25.0
⚔️ 공격 벡터
Function 또는 Environment CRD 생성 시 securityContext.capabilities.add에 SYS_TIME을 포함하여 승인 검증 우회
🛡️ 대응 방법
Fission을 버전 1.25.0 이상으로 업그레이드하여 패치된 버전으로 교체
🔧 검증 코드
명령어 실행 시 버전 정보가 출력되면 해당 버전이 1.25.0 미만으로 취약하며, 출력이 없거나 1.25.0 이상이면 안전한 상태입니다.
fission version 2>/dev/null | grep -E '1\.[0-9]\.[0-9]' | grep -vE '1\.25\.[0-9]|1\.[2-9][0-9]|\.[0-9][2-9][0-9]'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L
💻 영향받는 소프트웨어
IBM WebSphere Application Server