🇰🇷 한글 설명
Fission 1.25.0 미만 버전의 Unarchive 기능은 아카이브 내 파일 경로가 대상 디렉토리를 벗어나는지 검증하지 않아 디렉토리 트래버설 취약점이 발생합니다. 공격자가 악성 아카이브를 제공하면 환경별 포드의 fission-fetcher 컨테이너 권한으로 임의의 파일 시스템 경로에 파일을 쓸 수 있습니다.
💡 쉬운 설명
Fission 서버리스 프레임워크의 파일 추출 기능이 보안 검증을 제대로 하지 않아 해커가 시스템의 다른 곳에 악성 파일을 숨길 수 있습니다. 이 문제를 해결하려면 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, Unarchive in pkg/utils/zip.go joined each archive entry name with the destination directory via filepath.Join and wrote the result without checking whether the resolved path stayed under the destination. A zip entry named ../../tmp/evil therefore landed at /tmp/evil. An attacker who could control a Package.Spec.Source.URL or Deployment.URL archive could induce the fetcher (running as the per-environment pod's fission-fetcher sidecar) to write files anywhere that process could reach: into other tenants' /packages/<ns>/ directories, into mounted secret/config volumes, or into the fetcher's own binary. This issue has been patched in version 1.25.0.
📍 영향받는 시스템
Fission < 1.25.0
⚔️ 공격 벡터
악성 아카이브 URL을 Package.Spec.Source.URL 또는 Deployment.URL로 제공하여 fission-fetcher를 통해 임의 경로 파일 작성 유도
🛡️ 대응 방법
Fission을 버전 1.25.0 이상으로 업그레이드하여 경로 검증 로직 적용
🔧 검증 코드
명령어 실행 시 1.24 이하 버전이 출력되면 취약한 버전이므로 즉시 업그레이드해야 합니다.
fission version 2>/dev/null | grep -E '1\.2[0-4]'