
CVE-2024-48990에 대한 기술적 분석 및 개념 증명, needrestart에서 PYTHONPATH 조작을 통해 로컬 공격자가 루트 권한으로 임의 코드를 실행할 수 있는 권한 상승 취약점.
Python 프로세스(즉, Python 인터프리터를 실행 중인 프로세스)의 재시작 필요 여부를 확인하기 위해, needrestart는 이 프로세스의 /proc/pid/environ에서 PYTHONPATH 환경 변수를 추출하고(193행), 해당 변수가 존재하면 설정한 후(196행), "-" 인자를 사용하여 Python("$ptable->{exec}", 203행)을 실행하여 stdin(204행)에서 짧고 하드코딩된 스크립트를 읽습니다:
안타깝게도, Python 프로세스가 로컬 공격자의 소유인 경우, needrestart는 공격자가 제어하는 PYTHONPATH 환경 변수와 함께 Python(203행)을 실행하게 됩니다. 이로 인해 공격자는 (needrestart의 하드코딩된 Python 스크립트(204행)가 전혀 공격자에 의해 제어되지 않음에도 불구하고) 루트 권한으로 임의의 코드를 실행할 수 있습니다. 이것이 CVE-2024-48990입니다.