🇰🇷 한글 설명
Apache HTTP Server 2.4.2 이전 버전의 envvars 스크립트가 LD_LIBRARY_PATH에 빈 디렉토리명을 포함하여 현재 작업 디렉토리가 라이브러리 검색 경로에 추가됩니다. 로컬 사용자가 apachectl 실행 시 현재 디렉토리에 악성 공유 라이브러리를 배치하여 권한 상승을 달성할 수 있습니다.
💡 쉬운 설명
Apache 서버 시작 시 실행되는 apachectl 명령이 현재 폴더에서 라이브러리를 찾도록 잘못 설정되어 있습니다. 공격자가 악성 라이브러리를 미리 만들어 두면 서버가 이를 실행하면서 권한이 상승됩니다.
🇺🇸 원문 (English)
envvars (aka envvars-std) in the Apache HTTP Server before 2.4.2 places a zero-length directory name in the LD_LIBRARY_PATH, which allows local users to gain privileges via a Trojan horse DSO in the current working directory during execution of apachectl.
📍 영향받는 시스템
Apache HTTP Server < 2.4.2 (특히 apachectl 스크립트를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 apachectl 실행 디렉토리에 악성 DSO(동적 공유 객체) 배치 후 apachectl 호출 시 로드
🛡️ 대응 방법
Apache HTTP Server를 2.4.2 이상으로 업그레이드하거나 LD_LIBRARY_PATH에서 현재 디렉토리(.) 제거
🔧 검증 코드
VULNERABLE이 나오면 LD_LIBRARY_PATH가 현재 디렉토리를 포함하고 있다는 의미이며, OK가 나오면 패치된 상태입니다.
grep -E '^LD_LIBRARY_PATH' /usr/sbin/apachectl | grep -q ':$\|::.\|^\.:' && echo 'VULNERABLE' || echo 'OK'