🔍 CVE-2010-1447

8.5
CVSS Score
HIGH
2010-05-19
2026-04-29 01:13
✅ 완료

🇰🇷 한글 설명

PostgreSQL에 포함된 Perl의 Safe.pm 모듈(2.26 이하)의 보안 검증 기능이 우회되어, Safe::reval 및 Safe::rdo 제한 조건을 회피할 수 있는 취약점입니다. 공격자가 서브루틴 참조와 지연 실행 기법을 악용하여 시스템에서 임의의 코드를 실행할 수 있습니다.

💡 쉬운 설명

PostgreSQL에서 코드를 안전하게 실행하기 위해 사용하는 Perl의 보안 기능(Safe.pm)에 구멍이 있어서, 권한이 없는 사람도 위험한 코드를 실행할 수 있게 됩니다. 이를 통해 데이터베이스 서버 전체가 장악될 수 있습니다.

🇺🇸 원문 (English)

The Safe (aka Safe.pm) module 2.26, and certain earlier versions, for Perl, as used in PostgreSQL 7.4 before 7.4.29, 8.0 before 8.0.25, 8.1 before 8.1.21, 8.2 before 8.2.17, 8.3 before 8.3.11, 8.4 before 8.4.4, and 9.0 Beta before 9.0 Beta 2, allows context-dependent attackers to bypass intended (1) Safe::reval and (2) Safe::rdo access restrictions, and inject and execute arbitrary code, via vectors involving subroutine references and delayed execution.

📍 영향받는 시스템

PostgreSQL 7.4.x (~7.4.29), 8.0.x (~8.0.25), 8.1.x (~8.1.21), 8.2.x (~8.2.17), 8.3.x (~8.3.11), 8.4.x (~8.4.4), 9.0 Beta (~Beta 2); Perl Safe.pm 모듈 2.26 이하

⚔️ 공격 벡터

악의적인 Perl 코드에서 서브루틴 참조(subroutine references)와 지연 실행(delayed execution) 기법을 조합하여 Safe 모듈의 접근 제한을 우회하고 임의 코드 실행

🛡️ 대응 방법

PostgreSQL을 패치된 버전으로 즉시 업그레이드 (7.4.29 이상, 8.0.25 이상, 8.1.21 이상, 8.2.17 이상, 8.3.11 이상, 8.4.4 이상, 9.0 Beta 2 이상) 또는 Perl Safe.pm을 2.27 이상으로 업데이트

🔧 검증 코드

PostgreSQL 버전을 확인하여 영향받는 버전 범위와 비교하면 VULNERABLE(취약) 또는 PATCHED(패치됨) 결과를 얻을 수 있습니다. 취약한 경우 즉시 업데이트 필요

Shell / Script
psql --version | grep -oE '[0-9]+\.[0-9]+' | awk -F. '{if ($1==7 && $2==4) {if (substr($3,1,2)<29) print "VULNERABLE"} else if ($1==8 && $2==0) {if (substr($3,1,2)<25) print "VULNERABLE"} else if ($1==8 && $2==1) {if (substr($3,1,2)<21) print "VULNERABLE"} else if ($1==8 && $2==2) {if (substr($3,1,2)<17) print "VULNERABLE"} else if ($1==8 && $2==3) {if (substr($3,1,2)<11) print "VULNERABLE"} else if ($1==8 && $2==4) {if (substr($3,1,2)<4) print "VULNERABLE"} else print "PATCHED"}'

📊 CVSS Vector String

CVSS Vector
AV:N/AC:M/Au:S/C:C/I:C/A:C

💻 영향받는 소프트웨어

PostgreSQL