PHP2Shell · CVE-2026-109618 & CVE-2026-109619 · CriticalPHP2Shell · CVE-2026-109618 · CVE-2026-109619 · 심각
A critical PHP flaw can hand your whole server to an attacker.PHP의 치명적 결함으로 서버 전체가 공격자에게 넘어갈 수 있습니다.
On 21 October 2026 PHP shipped an emergency fix for two flaws that let anyone run their own code on a PHP server, with no password. Exploit code is already public. Check whether a site still needs the update.2026년 10월 21일, PHP가 긴급 보안 업데이트를 내놓았습니다. 두 가지 결함 때문에 누구든 비밀번호 없이 PHP 서버에서 원하는 코드를 실행할 수 있었고, 공격 코드는 이미 공개되었습니다. 내 사이트에 업데이트가 필요한지 확인해 보세요.
We read the site from the outside, like a visitor: the home page and at most two ordinary PHP pages. Nothing you enter is stored.방문자처럼 바깥에서만 읽습니다. 첫 페이지와 일반 PHP 페이지 최대 두 개만 요청하며, 입력한 주소는 저장하지 않습니다.
Already know your PHP version? Check it by handPHP 버전을 이미 알고 있나요? 직접 확인하기
Look after several sites? Check up to 10 at once ↓여러 사이트를 관리하나요? 최대 10개 한 번에 점검 ↓
Fixed releases · 21 Oct 2026패치된 버전 · 2026년 10월 21일
8.5.128.4.278.3.368.2.35
PHP 8.1, 8.0 and 7.4 get no release, only raw source patches for people who build PHP themselves. Older than 7.4: nothing.PHP 8.1, 8.0, 7.4는 정식 릴리스가 없고, PHP를 직접 빌드하는 사람을 위한 소스 패치만 공개되었습니다. 7.4보다 오래된 버전은 아무것도 없습니다.
Severity심각도
9.2 / 10
Critical. Remote code execution without logging in.심각. 로그인 없이 원격 코드 실행이 가능합니다.
Who is affected영향 범위
Every PHP install that serves web pages: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP and LiteSpeed. Risk is highest on mod_php, where the attack works before any site code runs.웹 페이지를 제공하는 모든 PHP 설치: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed. 사이트 코드가 실행되기도 전에 공격이 가능한 mod_php가 가장 위험합니다.
Agencies, IT teams, multi-site owners에이전시 · IT팀 · 여러 사이트 운영자
Check up to 10 sites at once최대 10개 사이트를 한 번에 점검
Paste up to ten sites and get one list, worst first: which are on an end-of-life version, which still need the update, and which hide their version. Then send us the list for one review and one quote for all of them.최대 10개 사이트를 붙여넣으면 가장 위험한 순서로 정리된 목록 하나를 받습니다. 지원 종료 버전, 아직 업데이트가 필요한 곳, 버전을 숨긴 곳을 한눈에 볼 수 있고, 그 목록을 보내주시면 전체를 한 번에 검토하고 견적을 드립니다.
More than ten, or client sites you are responsible for? Ask for a portfolio review and we will go through all of them.10개가 넘거나 책임지고 있는 고객 사이트가 있나요? 포트폴리오 검토를 요청하시면 전부 살펴봐 드립니다. Ask for a portfolio review →포트폴리오 검토 요청 →
The exact answer정확한 답
Read the exact version from inside your own site내 사이트 안에서 정확한 버전 확인하기
From the outside, a site that hides its version can only be identified as PHP. This small file shows the exact version once and then deletes itself. It sends nothing anywhere, and you can only put it on a server you control.버전을 숨긴 사이트는 바깥에서 PHP라는 것까지만 알 수 있습니다. 이 작은 파일은 정확한 버전을 한 번 보여주고 스스로 삭제됩니다. 어디로도 데이터를 보내지 않으며, 내가 관리하는 서버에만 올릴 수 있습니다.
- Download check-php.php, or copy the code.check-php.php를 내려받거나 코드를 복사합니다.
- Upload it to your site's main folder (where index.php is).사이트의 기본 폴더(index.php가 있는 곳)에 업로드합니다.
- Open yourdomain.com/check-php.php in a browser.브라우저에서 yourdomain.com/check-php.php를 엽니다.
- Read the result. The file removes itself; if it says it could not, delete it by hand.결과를 확인합니다. 파일은 스스로 삭제되며, 삭제하지 못했다고 나오면 직접 지워주세요.
<?php
// check-php.php: shows your exact PHP version once, then deletes itself.
// It sends nothing anywhere. The link below only opens if you click it.
header('Content-Type: text/html; charset=utf-8');
$id = PHP_VERSION_ID;
$fixed = ($id >= 80512) || ($id >= 80427 && $id < 80500) || ($id >= 80336 && $id < 80400) || ($id >= 80235 && $id < 80300);
echo '<p>PHP ' . htmlspecialchars(PHP_VERSION) . ' (' . PHP_SAPI . ')</p>';
if ($id < 80200) {
echo '<p>END OF LIFE: no official update. Move to PHP 8.2 or newer.</p>';
} elseif ($fixed) {
echo '<p>Has the PHP2Shell fix. Make sure PHP was restarted after updating.</p>';
} else {
echo '<p>NEEDS THE UPDATE: install 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart PHP.</p>';
}
// Remove this file so your version is not left public.
echo @unlink(__FILE__) ? '<p>(this file has deleted itself)</p>' : '<p>(please delete this file now)</p>';
$full = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION . '.' . PHP_RELEASE_VERSION;
echo '<p><a href="https://digitalnative.vip/php-patch-check?full=' . urlencode($full) . '#ver">What this means for your site</a></p>';
Do this today오늘 해야 할 일
What to do, in order순서대로 하세요
Exploit code is public, so the window between patch and attack is short.공격 코드가 공개되어 있어 패치와 공격 사이의 시간이 짧습니다.
- Find your PHP version.PHP 버전을 확인하세요.Use the checker above, your hosting panel, or run php -v on the server.위 점검 도구, 호스팅 관리 화면, 또는 서버에서 php -v 를 실행해 확인합니다.
- On 8.2 to 8.5: update now.8.2 ~ 8.5라면: 지금 업데이트하세요.Install 8.5.12, 8.4.27, 8.3.36 or 8.2.35, then restart PHP-FPM or the web server so the fixed code is what actually runs.8.5.12, 8.4.27, 8.3.36, 8.2.35 중 해당 버전을 설치한 뒤, PHP-FPM이나 웹 서버를 재시작해야 고쳐진 코드가 실제로 실행됩니다.
- On a host or a Linux distribution package: ask in writing.호스팅이나 리눅스 배포판 패키지를 쓴다면: 서면으로 물어보세요.Distributions and long-term-support vendors received the patch in advance and may ship it under the old version number. Ask your host or vendor whether your server has the fix.배포판과 장기 지원(LTS) 업체는 패치를 미리 받았고, 기존 버전 번호 그대로 배포할 수 있습니다. 내 서버에 패치가 적용됐는지 호스팅사나 업체에 확인하세요.
- On 8.1 or older: there is no update to install.8.1 이하라면: 설치할 업데이트가 없습니다.Move to a supported version (8.2 or newer). If that cannot happen today, consider taking the site offline until it can, as CISA advises.지원되는 버전(8.2 이상)으로 옮겨야 합니다. 오늘 당장 어렵다면 CISA 권고대로 그때까지 사이트를 내려두는 것을 검토하세요.
- Stopgaps only buy time.임시 조치는 시간을 벌 뿐입니다.PHP's advisory lists measures that reduce exposure but do not make a server safe, such as session.upload_progress.enabled=0 set in php.ini (not with ini_set or .user.ini) followed by a restart of every worker. Read the full list on php.net.PHP 공식 권고문에는 위험을 줄이지만 안전하게 만들지는 못하는 조치들이 나와 있습니다. 예: php.ini에 session.upload_progress.enabled=0 설정(ini_set이나 .user.ini는 효과 없음) 후 모든 워커 재시작. 전체 목록은 php.net에서 확인하세요. php.net →
- Then check nothing got in.그다음, 침입 흔적을 확인하세요.Look for admin users you did not create, files you did not upload, and recently changed PHP files. A site that was exposed before the patch may already carry a backdoor.직접 만들지 않은 관리자 계정, 올린 적 없는 파일, 최근 수정된 PHP 파일을 찾아보세요. 패치 전에 노출됐던 사이트에는 이미 백도어가 있을 수 있습니다.
Common mistakes흔한 오해
What does not fix it이것으로는 해결되지 않습니다
- Updating WordPress, plugins or themes워드프레스, 플러그인, 테마 업데이트The flaw is in PHP itself. Automatic WordPress updates do not touch it.결함은 PHP 자체에 있습니다. 워드프레스 자동 업데이트로는 고쳐지지 않습니다.
- Hiding the PHP versionPHP 버전 숨기기Attackers do not need to know the version. They send the attack to everything.공격자는 버전을 알 필요가 없습니다. 모든 서버에 공격을 보냅니다.
- Installing the update without a restart재시작 없이 업데이트만 설치PHP-FPM and Apache keep running the old code until they are restarted.PHP-FPM과 Apache는 재시작하기 전까지 예전 코드를 그대로 실행합니다.
- “It's just a small brochure site”“작은 소개용 사이트일 뿐인데요”Attackers scan the whole internet automatically. Forgotten sites, staging copies and old landing pages are the usual way in.공격자는 인터넷 전체를 자동으로 훑습니다. 잊힌 사이트, 스테이징 사본, 오래된 랜딩 페이지가 주된 침입 경로입니다.
What has happened지금까지의 상황
Timeline타임라인
PHP releases 8.5.12, 8.4.27, 8.3.36 and 8.2.35 to fix CVE-2026-109618 (out-of-memory corruption) and CVE-2026-109619 (stale global state), both allowing unauthenticated remote code execution.PHP가 8.5.12, 8.4.27, 8.3.36, 8.2.35를 배포해 CVE-2026-109618(메모리 부족 처리 중 손상)과 CVE-2026-109619(남아 있는 전역 상태)를 수정했습니다. 두 결함 모두 인증 없는 원격 코드 실행이 가능합니다.
php.netCISA urges organisations to patch immediately, and says systems that cannot be updated, or that run PHP 8.1 or earlier, should be taken offline until patched.미국 사이버보안 기관 CISA가 즉시 패치를 강력히 권고하고, 업데이트할 수 없거나 PHP 8.1 이하를 쓰는 시스템은 패치 전까지 오프라인으로 전환하라고 밝혔습니다.
CISAPHP publishes minimal source patches for 7.4, 8.0 and 8.1 for people who build PHP themselves. Versions before 7.4 get nothing.PHP가 직접 빌드하는 사용자를 위해 7.4, 8.0, 8.1용 최소 소스 패치를 공개했습니다. 7.4 이전 버전은 아무것도 없습니다.
php.net
Sources:출처: PHP security advisory · CISA alert · PHP supported versions · PHP downloads
Know someone who runs a website?웹사이트를 운영하는 지인이 있나요?
Most site owners do not know which PHP version they are on. Sending them this page takes a minute.대부분의 사이트 운영자는 자기 PHP 버전을 모릅니다. 이 페이지를 보내는 데 1분이면 충분합니다.
Need it checked or fixed?점검이나 조치가 필요하신가요?
Send us your site, or the list of sites you look after. We will tell you what each one runs, whether it is exposed, and what it would take to fix, before anyone touches anything.사이트 주소나 관리 중인 사이트 목록을 보내주세요. 손대기 전에 각 사이트가 무엇으로 돌아가는지, 노출되어 있는지, 고치려면 무엇이 필요한지 알려드립니다.
Email Digital NativeDigital Native에 이메일 보내기