🇰🇷 한글 설명
Ombi 오픈소스 애플리케이션의 특정 버전에서 관리자 권한을 가진 사용자가 호스트 운영체제의 임의 파일에 접근할 수 있는 임의 파일 읽기 취약점이 발견되었습니다. `SystemControllers.cs` 내의 `logFileName` 파라미터가 적절히 검증되지 않아 발생하며, 이를 통해 시스템 파일이나 다른 사용자의 파일이 노출될 수 있습니다.
💡 쉬운 설명
Ombi 관리자 권한을 가진 사람이 원래 허용되지 않은 컴퓨터 내부의 중요한 파일들을 몰래 읽을 수 있는 보안 약점입니다. 파일 경로를 조작하여 로그 폴더를 벗어나 시스템 전체의 정보를 훔쳐볼 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
Ombi is an open source application which allows users to request specific media from popular self-hosted streaming servers. Versions prior to 4.38.2 contain an arbitrary file read vulnerability where an Ombi administrative user may access files available to the Ombi server process on the host operating system. Ombi administrators may not always be local system administrators and so this may violate the security expectations of the system. The arbitrary file read vulnerability was present in `ReadLogFile` and `Download` endpoints in `SystemControllers.cs` as the parameter `logFileName` is not sanitized before being combined with the `Logs` directory. When using `Path.Combine(arg1, arg2, arg3)`, an attacker may be able to escape to folders/files outside of `Path.Combine(arg1, arg2)` by using ".." in `arg3`. In addition, by specifying an absolute path for `arg3`, `Path.Combine` will completely ignore the first two arguments and just return just `arg3`. This vulnerability can lead to information disclosure. The Ombi `documentation` suggests running Ombi as a Service with Administrator privileges. An attacker targeting such an application may be able to read the files of any Windows user on the host machine and certain system files. This issue has been addressed in commit `b8a8f029` and in release version 4.38.2. Users are advised to upgrade. There are no known workarounds for this vulnerability. This issue is also tracked as GHSL-2023-088.
📍 영향받는 시스템
Ombi 4.38.2 미만 버전
⚔️ 공격 벡터
ReadLogFile 및 Download 엔드포인트의 logFileName 파라미터에 '..' 또는 절대 경로를 입력하여 경로 탐색(Path Traversal) 공격 수행
🛡️ 대응 방법
Ombi를 최신 버전인 4.38.2 이상으로 즉시 업그레이드하십시오.
🔧 검증 코드
출력된 버전 정보가 4.38.2 이상인지 확인하여 취약점이 해결되었는지 판단합니다.
curl -s http://<OMBI_HOST>:<PORT>/version | grep -E '4\.(3[8-9]|\d{2,})'