🇰🇷 한글 설명
Gleam의 Hex 패키지 내보내기 과정에서 심볼릭 링크를 추적하는 취약점이 발견되었습니다. 공격자가 프로젝트 디렉토리 내에 심볼릭 링크를 생성하면, 패키지 생성 시 프로젝트 루트 외부의 민감한 파일이 포함될 수 있습니다.
💡 쉬운 설명
프로젝트 폴더 안에 가짜 연결 통로(심볼릭 링크)를 만들어 두면, 프로그램을 배포할 때 컴퓨터에 있는 중요한 비밀번호나 개인 파일이 몰래 함께 묶여서 전송될 수 있는 문제입니다.
🇺🇸 원문 (English)
Symlink following vulnerability in Gleam's Hex package export allows files outside the project root to be embedded in the generated package tarball.
The file collection helpers (gleam_files, native_files, private_files) in compiler-cli/src/fs.rs use follow_links(true) when walking publishable directories such as src/ and priv/. The collected paths are added to the package archive via add_path_to_tar in compiler-cli/src/publish.rs without verifying that the resolved target remains within the project root. A symlink placed under a publishable directory will cause gleam export hex-tarball or gleam publish to embed the contents of the symlink target into the generated Hex package.
An attacker with write access to the project repository can place a symlink in src/ or priv/ pointing to an arbitrary file. When a maintainer or CI pipeline runs gleam publish or gleam export hex-tarball, local files readable by the publisher (such as secrets, tokens, or SSH keys) are silently embedded into the published package artifact.
This issue affects Gleam from 0.10.0-rc1 until 1.17.0.
📍 영향받는 시스템
Gleam 0.10.0-rc1 ~ 1.17.0
⚔️ 공격 벡터
공격자가 프로젝트의 src/ 또는 priv/ 디렉토리에 외부 파일을 가리키는 심볼릭 링크를 생성하여 배포 프로세스를 유도함
🛡️ 대응 방법
Gleam 버전을 1.17.0 이상으로 업데이트하거나, 패키지 배포 전 프로젝트 내에 의심스러운 심볼릭 링크가 있는지 검사해야 합니다.
🔧 검증 코드
출력된 버전이 0.10.0-rc1보다 높고 1.17.0보다 낮은지 확인합니다.
💻 영향받는 소프트웨어
IBM Security Verify Access