🇰🇷 한글 설명
Drupal 5.2 이하 버전에서 PHP unset 명령의 버그로 인해 변수가 제대로 초기화되지 않습니다. 공격자는 _menu[callbacks][1][callback] 매개변수를 통해 drupal_eval 함수로 임의의 PHP 코드를 실행할 수 있습니다. 원격 공격자가 관리자 권한 없이도 서버 장악이 가능합니다.
💡 쉬운 설명
오래된 Drupal 웹사이트의 설정 방식 결함으로 인해 공격자가 서버에서 자신의 명령을 직접 실행할 수 있게 됩니다. 2007년 발견된 취약점이므로 현재 운영 중인 사이트라면 매우 높은 위험 상태입니다.
🇺🇸 원문 (English)
Drupal 5.2 and earlier does not properly unset variables when the input data includes a numeric parameter with a value matching an alphanumeric parameter's hash value, which allows remote attackers to execute arbitrary PHP code by invoking the drupal_eval function through a callback parameter to the default URI, as demonstrated by the _menu[callbacks][1][callback] parameter. NOTE: it could be argued that this vulnerability is due to a bug in the unset PHP command (CVE-2006-3017) and the proper fix should be in PHP; if so, then this should not be treated as a vulnerability in Drupal.
📍 영향받는 시스템
Drupal 5.2 and earlier versions
⚔️ 공격 벡터
Default URI의 _menu[callbacks][1][callback] 매개변수를 통해 callback 함수에 PHP 코드 주입 후 drupal_eval 실행
🛡️ 대응 방법
Drupal을 5.3 이상의 최신 버전으로 즉시 업그레이드하거나 공식 보안 패치 적용
🔧 검증 코드
출력된 버전이 5.2 이하면 취약함. 5.3 이상이면 패치됨. 버전 정보가 없으면 Drupal이 설치되지 않았거나 다른 경로에 설치된 것.
grep -r 'define.*DRUPAL_VERSION' /var/www/drupal/includes/ 2>/dev/null | grep -oP "'\K[^']+(?=')" | head -1