🇰🇷 한글 설명
Pi-hole은 클라이언트 소프트웨어 설치 없이 기기를 원치 않는 콘텐츠로부터 보호하는 DNS 싱크홀입니다. 6.5 이전 버전에서 gravity.sh는 sudo -u pihole test -r로 file:// adlist의 읽기 가능 여부를 확인하지만, 이후 curl이 URL 점 세그먼트를 정규화하여 다른 파일을 열 수 있어 우회가 가능합니다. 이 문제는 6.5 버전에서 수정되었습니다.
💡 쉬운 설명
Pi-hole 관리자가 광고 차단 목록을 추가할 때 실제로는 읽으면 안 되는 시스템 파일을 몰래 읽을 수 있는 문제입니다. 공격에는 관리자 권한과 파일시스템에 심볼릭 링크를 만들 수 있는 조건이 필요합니다.
🇺🇸 원문 (English)
Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. Prior to 6.5, gravity.sh checks file:// adlist readability with sudo -u pihole test -r but then allows curl, sometimes running as root, to normalize URL dot segments and open a different file. A pihole-readable decoy can therefore pass the check while curl reads a root-only target, and /proc/self paths can similarly resolve against different processes. Exploitation requires an administrator who can add adlists and can place a symlink and decoy on the filesystem. This issue is fixed in version 6.5.
📍 영향받는 시스템
Pi-hole 6.5 이전 버전
⚔️ 공격 벡터
관리자 권한을 가진 공격자가 심볼릭 링크와 가짜 파일을 만들어 권한 검사를 통과한 뒤 root 전용 파일을 읽도록 유도
🛡️ 대응 방법
Pi-hole을 6.5 이상으로 업데이트
🔧 검증 코드
출력된 Core 버전이 6.5 이상이면 취약점이 수정된 것이고, 6.5 미만이면 즉시 업데이트가 필요합니다.
pihole -v 2>/dev/null | grep -i 'core'