🇰🇷 한글 설명
Apport가 충돌한 프로세스의 정보를 /proc/pid에 높은 권한으로 읽고 쓰는 과정에서 PID 재사용 취약점이 발생합니다. 이를 통해 권한이 없는 사용자가 특권 프로세스의 정보를 읽어 ASLR 오프셋을 획득하고 메모리 손상 공격에 활용할 수 있습니다.
💡 쉬운 설명
프로그램이 오류로 멈췄을 때 정보를 기록하는 과정에서 보안 허점이 발견되었습니다. 해커가 이 허점을 이용해 시스템의 중요한 보안 정보를 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Apport reads and writes information on a crashed process to /proc/pid with elevated privileges. Apport then determines which user the crashed process belongs to by reading /proc/pid through get_pid_info() in data/apport. An unprivileged user could exploit this to read information about a privileged running process by exploiting PID recycling. This information could then be used to obtain ASLR offsets for a process with an existing memory corruption vulnerability. The initial fix introduced regressions in the Python Apport library due to a missing argument in Report.add_proc_environ in apport/report.py. It also caused an autopkgtest failure when reading /proc/pid and with Python 2 compatibility by reading /proc maps. The initial and subsequent regression fixes are in 2.20.11-0ubuntu16, 2.20.11-0ubuntu8.6, 2.20.9-0ubuntu7.12, 2.20.1-0ubuntu2.22 and 2.14.1-0ubuntu3.29+esm3.
📍 영향받는 시스템
Ubuntu Apport (패치 전 버전)
⚔️ 공격 벡터
PID 재사용(PID recycling)을 이용한 특권 프로세스의 정보 및 ASLR 오프셋 탈취
🛡️ 대응 방법
Apport 패키지를 최신 보안 업데이트 버전(2.20.11-0ubuntu16 이상 등)으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 패치된 버전 번호가 포함되어 있으면 안전하며, 포함되지 않으면 업데이트가 필요합니다.
dpkg -l apport 2>/dev/null | grep -E '2.20.11-0ubuntu16|2.20.11-0ubuntu8.6|2.20.9-0ubuntu7.12|2.20.1-0ubuntu2.22|2.14.1-0ubuntu3.29'