🇰🇷 한글 설명
Rsync 3.4.3 미만 버전에서 발생하는 취약점으로, 악의적인 rsync 서버로부터 파일을 가져올 때 recv_files() 함수 내에서 배열 범위를 벗어난 읽기(Out-of-bounds read)가 발생합니다. 공격자가 조작된 프로토콜 데이터를 전송하면 클라이언트 프로그램이 비정상적으로 종료(Crash)될 수 있습니다.
💡 쉬운 설명
가짜 rsync 서버에 연결하여 파일을 다운로드하려고 하면, 서버가 보낸 잘못된 정보 때문에 내 컴퓨터의 rsync 프로그램이 갑자기 꺼져버리는 문제입니다. 이 문제는 프로그램이 멈추는 현상만 일으키며, 해커가 내 컴퓨터를 직접 조종할 수는 없습니다.
🇺🇸 원문 (English)
Rsync is a file-copying tool that uses a delta-transfer algorithm to synchronize remote and local files. In versions prior to 3.4.3, the receiver-side out-of-bounds array read in rsync's recv_files() lets a malicious rsync server (or any peer acting in the sender role) deterministically crash any rsync client that pulls from it. The trigger is fully wire-protocol-level, requires no special options on the victim, and works for both rsync:// URLs and remote-shell pulls; since inc_recurse is the protocol-30+ default, any client doing a normal recursive pull against an attacker-controlled URL is exposed. A malicious server sets CF_INC_RECURSE, sends a flist whose first sorted entry is not the leading "." directory (causing parent_ndx to be set to -1), then sends a transfer record with ndx = 0 and an iflag omitting ITEM_TRANSFER, causing the receiver to read 8 bytes before the allocated pointer array and dereference the result in f_name(). The impact is crash-only: the out-of-bounds read lands in glibc mmap chunk metadata and dereferences to an unmapped low address, producing a SEGV that cannot be leveraged into an exploit (confirmed on glibc x86-64 Linux; non-glibc allocators not audited). This issue is fixed in version 3.4.3.
📍 영향받는 시스템
Rsync versions prior to 3.4.3
⚔️ 공격 벡터
악의적인 rsync 서버 또는 피어(Peer)로부터 조작된 프로토콜 데이터를 수신할 때 발생
🛡️ 대응 방법
Rsync를 최신 버전인 3.4.3 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과에 rsync 버전이 3.4.3 미만으로 표시되면 취약한 버전이 설치된 상태입니다.
rsync --version | grep -E 'rsync version [0-3]\.[0-4]\.[0-2]'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux