🇰🇷 한글 설명
PostgreSQL 8.1의 dblink 라이브러리가 CREATE FUNCTION을 통해 임의의 C 라이브러리 함수 로드를 허용하여, 인증된 슈퍼유저가 libc의 시스템 함수를 매핑해 셸 명령을 직접 실행할 수 있는 권한 에스컬레이션 취약점입니다.
💡 쉬운 설명
PostgreSQL 관리자 권한을 가진 사용자가 데이터베이스를 통해 운영체제 명령을 직접 실행할 수 있는 버그입니다. 이를 악용하면 서버 전체를 장악할 수 있습니다.
🇺🇸 원문 (English)
The Database Link library (dblink) in PostgreSQL 8.1 implements functions via CREATE statements that map to arbitrary libraries based on the C programming language, which allows remote authenticated superusers to map and execute a function from any library, as demonstrated by using the system function in libc.so.6 to gain shell access.
📍 영향받는 시스템
PostgreSQL 8.1 및 이전 버전 (dblink 확장 설치 시)
⚔️ 공격 벡터
인증된 슈퍼유저가 CREATE FUNCTION으로 libc 함수 매핑 후 system() 호출로 arbitrary command 실행
🛡️ 대응 방법
PostgreSQL 8.2 이상으로 업그레이드하거나 dblink 확장 제거 및 불필요한 슈퍼유저 권한 회수
🔧 검증 코드
버전이 8.1 이하이면 취약점 가능성이 있으므로 즉시 업그레이드 필요합니다.
psql -U postgres -c "SELECT version();" 2>/dev/null | grep -oE 'PostgreSQL [0-9]+\.[0-9]+'