🔍 CVE-2026-26187

8.1
CVSS Score
HIGH
2026-02-13
2026-06-17 10:25
✅ 완료

🇰🇷 한글 설명

lakeFS는 개방형 도구로 객체 저장소를 Git과 유사한 저장소로 변환합니다. 1.77.0 버전 이전에서는 로컬 블록 어댑터가 인증된 사용자에게 저장소 경계 외부의 파일을 읽고 쓸 수 있도록 허용했습니다. verifyRelPath 함수는 요청된 경로가 구성된 저장소 디렉토리 내에 있는지 확인하기 위해 strings.HasPrefix()를 사용했지만, 경로 접두사만 확인하고 경로 구분자를 요구하지 않았기 때문에 이름이 유사한 자식 디렉토리에 대한 접근을 허용했습니다. 또한 어댑터는 해결된 경로가 어댑터의 기본 경로 내에 있는지 확인했지만, 객체 식별자가 지정된 저장소 네임스페이스 내에 있는지 확인하지 않았습니다. 이것은 공격자가 다른 네임스페이스의 파일에 접근하기 위해 객체 식별자에 경로 순회 시퀀스를 사용할 수 있게 하였습니다. 버전 1.77.0에서 수정되었습니다.

💡 쉬운 설명

lakeFS의 로컬 블록 어댑터에서 인증된 사용자가 저장소 경계 외부의 파일을 읽고 쓸 수 있는 취약점입니다. 이는 저장소 디렉토리 외부의 파일에 대한 접근을 허용하여 보안 위협을 일으킬 수 있습니다. 버전 1.77.0으로 업데이트하여 취약점을 수정할 수 있습니다.

🇺🇸 원문 (English)

lakeFS is an open-source tool that transforms object storage into a Git-like repositories. Prior to 1.77.0, the local block adapter (pkg/block/local/adapter.go) allows authenticated users to read and write files outside their designated storage boundaries. The verifyRelPath function used strings.HasPrefix() to verify that requested paths fall within the configured storage directory. This check was insufficient because it validated only the path prefix without requiring a path separator, allowing access to sibling directories with similar names. Also, the adapter verified that resolved paths stayed within the adapter's base path, but did not verify that object identifiers stayed within their designated storage namespace. This allowed attackers to use path traversal sequences in the object identifier to access files in other namespaces. Fixed in version v1.77.0.

📍 영향받는 시스템

lakeFS 1.77.0 이전 버전

⚔️ 공격 벡터

인증된 사용자가 로컬 블록 어댑터를 통해 경로 순회 시퀀스를 사용하여 저장소 경계 외부의 파일에 접근

🛡️ 대응 방법

lakeFS를 버전 1.77.0으로 업데이트하고, 저장소 디렉토리와 객체 식별자에 대한 접근을 제한합니다.

🔧 검증 코드

로컬 시스템에서 lakeFS의 버전을 확인하여 취약점 여부를 점검합니다. Python이 설치되어 있어야 하며, lakeFS가 pip를 통해 설치된 경우에만 작동합니다. 코드를 실행하기 전에 lakeFS가 설치되어 있는지 확인해야 합니다.

Shell / Script
python -c 'import pkg_resources; print("lakeFS 버전:", pkg_resources.get_distribution("lakefs").version); if pkg_resources.get_distribution("lakefs").version < "1.77.0": print("{\"result\": \"취약\", \"reason\": \"lakeFS 버전이 1.77.0 미만입니다.\"}"); else: print("{\"result\": \"양호\", \"reason\": \"lakeFS 버전이 1.77.0 이상입니다.\"}")'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git