이 언어는 기계 번역이며, 사람의 검수를 거치지 않았습니다.

기술 · 해설 기사

PHP2Shell: 정부를 오프라인으로 내린 2개의 중대한 PHP 결함

게시:

요약

PHP2Shell은 PHP 프로그래밍 언어의 2개의 중대한 인증 없는 원격 코드 실행 결함인 CVE-2026-109618 및 CVE-2026-109619의 별칭이며, 2026년 10월 20-21일에 공개되었습니다. PHP가 세계 웹사이트의 매우 큰 부분을 지원하기 때문에, 이 결함들은 여러 정부가 예방 조치로 공개 사이트를 오프라인으로 내리게 했습니다. 공식 수정은 PHP 업그레이드입니다. 중간 서버 측 완화가 존재하지만, 개별 사용자가 할 수 있는 것은 침해 알림 감시 및 강력하고 고유한 암호 사용을 넘어 거의 없습니다.

이 버전은 원문(English)의 기계 번역입니다. 원문 읽기

PHP2Shell은 특정 웹사이트나 앱이 아닌 PHP 프로그래밍 언어 자체의 2개 결함의 별칭입니다. 이들은 CVE-2026-109618 및 CVE-2026-109619로 추적되며, PHP의 자체 보안 팀은 PHP 프로젝트의 공식 2026 아카이브 페이지에 따라 CVSS v4.0 척도에서 둘 다 10점 중 9.2점으로 평가했으며, 이는 '중대' 등급입니다.

2개 결함이 실제로 하는 일

PHP 프로젝트 자체의 권고에 따르면, CVE-2026-109618은 PHP가 웹 요청을 처리하는 동안 메모리가 부족할 때 트리거됩니다. 메모리 부족 오류는 내부 요청 데이터가 완전히 설정되기 전에 PHP를 중단할 수 있으며, 그 이후의 정리 프로세스는 해당 불완전한 데이터를 유효한 것으로 처리할 수 있으며, 이는 메모리 손상 및 원격 코드 실행으로 이어질 수 있습니다.

CVE-2026-109619는 PHP에 의해 '오래된 전역 상태' 버그로 설명됩니다. 한 방문자의 요청과 관련된 데이터는 삭제되어야 한 이후에도 서버의 메모리에 남아 있을 수 있으며, 같은 워커 프로세스에 의해 처리되는 다음 방문자의 요청은 그 남은 데이터에 작용할 수 있습니다. 전역 모니터링 시스템 네트워크를 운영하는 보안 회사 watchTowr은 두 버그 모두 공격자가 로그인 없이 코드를 실행할 수 있으며, 웹사이트 자체 코드 실행이 시작되기 전에 실행할 수 있다고 말했습니다.

네덜란드 보안 회사 Sansec은 악용의 경로 중 하나가 PHP의 세션 '업로드 진행' 기능을 통해 실행되며 기타 무관한 요청에서 서버 메모리에 있던 암호, API 키, 암호화 키 같은 데이터를 노출할 수 있다고 말해 추가 기술적 세부 정보를 제공했습니다.

많은 웹사이트가 노출된 이유

버그는 PHP 엔진 내에 있으므로, 그 위에 어떤 콘텐츠 시스템이 실행되는지에 관계없이 PHP로 구축된 모든 웹사이트나 앱이 잠재적으로 노출됩니다. Sansec에 따르면 여기에는 WordPress, Drupal, Joomla, Magento, Nextcloud와 같이 널리 사용되는 플랫폼이 포함됩니다. PHP는 웹상에서 가장 널리 사용되는 서버 측 프로그래밍 언어 중 하나로 남아 있으며, 이는 이 결함들이 광범위하고 대규모 위험을 초래하는 것으로 취급되는 이유 중 하나입니다.

Wiz의 보안 연구자들이 결함을 발견했으며, Help Net Security는 연구자들이 최첨단 AI 도구의 발전으로 인해 오래 알려진 악용하기 어려운 메모리 처리 문제를 작동하는 악용으로 바꾸는 기술적 장벽이 크게 낮아졌다고 말했다고 보도했습니다.

정부가 사이트를 오프라인으로 내린 이유

PHP의 공식 패치가 준비되기 전에 결함의 기술적 세부 정보가 누출되어 수정이 공개되기 전에 방어자가 얻는 일반적인 선발 이점을 줄였습니다. 보안 블로그 Safeguard는 2026년 10월 21일 네덜란드가 국가 사이버 보안 센터 자체의 사이트인 Overheid.nl, 하원 웹사이트, 여러 병원 및 정치 정당 사이트를 포함한 서비스를 예방 조치로 중단했다고 보도했습니다. 핀란드의 국가 IT 제공자 Valtori는 예방 조치로 정부 네트워크 서비스를 오프라인으로 내렸으며, 덴마크의 지자체 IT 회사 Kombit은 국가 학교 통신 플랫폼을 포함한 여러 서비스를 종료했습니다. 프랑스의 내무부는 PHP 수정이 적용될 때까지 기다리고 있다고 말하며 현과 지역 행정 사이트를 일시적으로 중단했습니다. 독일의 연방 IT 제공자 ITZBund와 벨기에의 외무부도 사이트를 오프라인으로 내렸지만, Safeguard는 다른 이유를 제시했다고 보도했습니다. ITZBund는 보안 사건을 알지 못했다고 말했으며, 벨기에의 외무부는 공격 보도를 인용했습니다.

watchTowr은 자신의 허니팟 네트워크인 Attacker Eye가 누출의 1일 후인 2026년 10월 21일부터 시작하여 PHP가 수정을 공개한 같은 날짜에 실제 악용 시도를 기록했다고 말했습니다.

2개 결함 비교

CVE-2026-109618 vs CVE-2026-109619
CVE-2026-109618CVE-2026-109619
CVSS v4.0 점수9.2 (중대)
근본 원인메모리 부족 처리로 요청 데이터가 부분적으로 초기화되지 않은 채로 남음
인증 필요아니오
수정된 버전PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
최고 위험 설정watchTowr에 따른 Apache의 mod_php

사이트 및 데이터 보호 방법

  1. PHP에서 웹사이트를 운영하는 경우: 수정된 버전 — PHP 8.5.12, 8.4.27, 8.3.36 또는 8.2.35 —로 업그레이드하고 그 이후 모든 PHP 워커 프로세스를 다시 시작하세요. PHP의 권고 및 runZero는 모두 업그레이드가 유일한 완전한 수정이라고 강조합니다.
  2. 여전히 PHP 7.4, 8.0 또는 8.1을 사용 중인 경우, 이들은 더 이상 공식 업데이트를 받지 못합니다. Linux 배포판 또는 호스팅 제공자로부터 백포트된 보안 패치를 얻으세요. PHP 아카이브 페이지에 따르면 PHP의 자체 프로젝트는 이러한 브랜치의 유지보수를 중단했습니다.
  3. 패치를 적용할 수 있을 때까지 runZero는 서버 또는 프록시 수준에서의 중간 단계를 권고합니다. 애플리케이션이 이를 무시할 수 없도록 메모리 제한을 설정하고, 낮은 요청 크기 및 멀티파트 업로드 제한을 적용하며, 세션 '업로드 진행' 기능을 비활성화하세요.
  4. 웹서버 액세스 로그에서 Sansec이 알려진 악용 시도에 일반적이라고 말하는 비정상적인 multipart/form-data POST 요청이 있는지 확인하고, 예상하지 못한 PHP 메모리 스파이크 또는 치명적 오류를 감시하세요.
  5. 일상적인 인터넷 사용자로서 제어하지 않는 서버에 패치를 적용할 수 없지만, 사용 중인 서비스로부터의 침해 알림을 감시하고, 각 계정에 고유한 암호를 사용하며, 유출된 암호만으로 계정에 액세스하기에 충분하지 않도록 2단계 인증을 활성화할 수 있습니다.

PHP는 구성 변경으로 이러한 취약점을 완전히 완화할 수 없다고 명시합니다.

— CVE-2026-109618에 대한 watchTowr FAQ

여전히 불명확한 점

검토한 보도 기준으로 여러 정부가 사이트를 오프라인으로 내리기로 결정한 시점에서 얼마나 광범위한 적극적 악용이 이미 있었는지에 대해 전문가들 사이에 불일치가 있었습니다. Safeguard는 네덜란드 정부가 행동했을 때 적극적 악용의 흔적이 없었다고 말했다고 보도했으며, watchTowr은 별도로 다음 날 자신의 허니팟에 대한 실제 공격 시도를 확인했습니다.

자주 묻는 질문

PHP2Shell이란 무엇인가요?
PHP2Shell은 PHP의 자체 2026년 보안 권고 및 watchTowr의 분석에 따르면, 인증되지 않은 공격자가 웹 서버에서 코드를 실행할 수 있도록 하는 2개의 중대한 PHP 취약점인 CVE-2026-109618 및 CVE-2026-109619에 주어진 별칭입니다.
어떤 PHP 버전이 영향을 받나요?
2026년 10월 수정 전의 PHP 버전 7.4 ~ 8.5가 영향을 받습니다. 수정된 버전은 PHP의 공식 아카이브 페이지 및 watchTowr에 따르면 8.5.12, 8.4.27, 8.3.36 및 8.2.35입니다.
PHP2Shell 때문에 개인 데이터가 위험에 처해 있나요?
사용 중인 서비스가 수정되지 않은 PHP 서버를 실행하는 경우에만 데이터가 위험에 처할 수 있습니다. Sansec은 취약점 중 하나가 서버 메모리에 있는 암호, API 키, 암호화 키를 노출할 수 있다고 보도했으나, 개별 사용자는 이를 스스로 수정할 수 없습니다 — 사이트 운영자만 패치를 통해 수정할 수 있습니다.
정부가 웹사이트를 오프라인으로 내린 이유는 무엇인가요?
보안 블로그 Safeguard의 보도에 따르면, 네덜란드, 핀란드, 덴마크, 프랑스, 독일, 벨기에를 포함한 여러 정부는 PHP의 공식 패치가 준비되기 전에 기술적 세부 정보가 누출된 후 예방 조치로 공개 사이트를 오프라인으로 내렸습니다.
브라우저나 백신을 업데이트하면 PHP2Shell으로부터 보호받나요?
아니오 — PHP2Shell은 웹사이트에서 사용하는 PHP 언어의 서버 측 결함이므로, 보호는 사용자가 자신의 장치에서 변경하는 것이 아닌 웹사이트 운영자가 PHP 설치를 업데이트하는 데 달려 있습니다.

출처

  1. PHP.net — Archive 2026 (security release details, CVE-2026-109618 & CVE-2026-109619)
  2. Help Net Security — PHP2Shell: Critical PHP vulnerabilities patched, update now!
  3. watchTowr — PHP2Shell FAQ: CVE-2026-109618 & CVE-2026-109619 Fixes
  4. Sansec — PHP2Shell: PHP RCE (CVE-2026-109618, CVE-2026-109619)
  5. Safeguard — PHP2Shell: Why Governments Took Websites Offline on 21 October
  6. runZero — Critical RCE vulnerability in PHP: Find impacted assets
  7. W3Techs — Usage statistics of PHP for websites

이 글은 인공지능으로 작성되었고 게시 전에 자동 출처 검증을 거쳤습니다. 오류를 발견하면 정정을 요청해 주세요. 정정 또는 반론 요청 · 제작 원칙

관련 기사