🇰🇷 한글 설명
Fission 1.25.0 이전 버전의 SanitizeFilePath 함수는 경로 검증 시 사전 접두어 확인만 수행하여 디렉토리 경계 체크를 누락했습니다. 이로 인해 공격자가 의도하지 않은 디렉토리 내의 파일을 읽거나 쓸 수 있는 경로 조작 취약점이 발생합니다.
💡 쉬운 설명
보안 검증 기능이 제대로 작동하지 않아, 시스템이 허용된 폴더가 아닌 다른 곳의 파일에도 접근할 수 있게 됩니다. 이는 악의적인 사용자가 서버의 중요한 데이터를 유출하거나 변조할 수 있는 원인이 됩니다.
🇺🇸 원문 (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, SanitizeFilePath in pkg/utils/utils.go validated that a path stayed under a safe directory by calling strings.HasPrefix(path, safedir). This is a lexical check, not a directory boundary check: /packages-extra/evil starts with /packages, so it passed. The function did not enforce a path-separator boundary, so any sibling directory whose name began with the safe-directory string was accepted. Callers included the builder's Clean handler (pkg/builder/builder.go:208) and the fetcher's Fetch / Upload handlers (pkg/fetcher/fetcher.go). A tenant who could pre-create or control a sibling directory under the fetcher / builder's shared volume could induce a write or read outside the intended safe directory. This issue has been patched in version 1.25.0.
📍 영향받는 시스템
Fission < 1.25.0
⚔️ 공격 벡터
공격자가 공유 볼륨에 악의적인 이름의 디렉토리를 생성하여 경로 검증 우회
🛡️ 대응 방법
Fission을 버전 1.25.0 이상으로 업그레이드하여 패치 적용
🔧 검증 코드
명령어 실행 시 1.24 이하 버전이 출력되면 취약한 버전이므로 업그레이드가 필요합니다.
fission version 2>/dev/null | grep -E '1\.2[0-4]'
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server