누구를 위한 것인가.
사이트를 사용하고, 서버나 코드를 직접 다루는 사람입니다.
글을 쓴 이유
10 월 22 일 밤입니다. 21 일, PHP 와 Node.js 의 수정이 같은 날 발표되었습니다. 오늘도 IPA 가 PHP 에 대해 경고했습니다.
제목만 먼저 흘러가고 내용은 뒤처진 것 같았습니다. 인스타그램에는 담기 힘들었기에 여기 적어봅니다.
모든 것은 제가 직접 조작하지 않았습니다. 공식 문서, IPA, 그리고 Node.js 관련 기고문을 읽고 작성했습니다.
요약
PHP 는 두 가지 버그가 있습니다. 이름은 PHP2Shell 입니다. CVE 번호는 CVE-2026-109618 과 CVE-2026-109619 입니다.
첫 번째는 메모리가 부족할 때 처리가 요청 중반에 중단되는 문제이고, 두 번째는 이전 요청의 내부 상태가 다음 요청에 남는 문제입니다. 둘 다 로그인하지 않은 사용자에게서 서버 측 코드가 실행될 수 있습니다. 이는 PHP 가 요청을 처리하는 측면을 말합니다.
수정판은 8.2.35, 8.3.36, 8.4.27, 8.5.12 입니다.
Node.js 또한 같은 10 월 21 일입니다. 수정 사항은 총 10 건이며, 그 중 우선순위가 높은 항목이 4 건입니다.
코드를 실행하게 된 원인은 수신한 Brotli 압축 데이터를解压할 때 경계 밖으로의 쓰기 때문입니다. 해당 취약점 번호는 CVE-2026-111497 입니다.
수정 버전은 22.23.4, 24.22.1, 26.12.1 입니다. 앱 패키지를 업그레이드하는 것만으로는 이 수정을 적용할 수 없습니다. 실행 중인 Node.js 자체를 업그레이드해야 합니다.
어떤 결과가 될지
대상은 웹 요청을 처리하는 PHP 입니다. PHP-FPM, Apache 의 mod_php, php-cgi, FrankenPHP, LiteSpeed 를 포함합니다. 화면에 이름이 표시되지 않더라도 존재할 수 있습니다.
PHP 는 mod_php 가 가장 위험하다고 적고 있습니다. 로그인 전 요청만으로도 도달할 수 있다고 덧붙였습니다. 애플리케이션 코드가 실행되기 전에 이미 도달할 수 있다는 것입니다.
잠을 자고 난 뒤, 해당 서버에 저장된 파일이나 정보는 읽을 수 있습니다. 사이트가 운영진조차 모르게 움직이는 경우도 있습니다. 로그인 화면이 보여져도 그 전 단계에서 발생할 수 있습니다.
10 월 21 일 현재 CISA 는 악용 사례를 확인했다고 밝히지 않았습니다. 같은 시기에 CERT-EU 는 테스트용 코드가 유통되기 시작해 악용 가능성이 높아졌다고 언급했습니다. 현재까지 널리 악용되고 있는지 여부는 명확하지 않습니다. 단순한 관찰을 위한 것으로 보기는 어렵습니다.
사용 중인 사람
자신이 PHP 를 직접 설치하지 않은 사람은 상대방의 서버를 수정할 수 없습니다. 회사 웹사이트, 식당 예약, 읽는 블로그 등 수정해야 할 것은 해당 운영자가 담당해야 합니다.
알 수 없는 '보안 수정'이라는 파일이나 링크는 열지 마십시오. 공식 사이트에서 동일한 안내가 있는지 확인하십시오. 이메일만으로는 문제가 해결되었는지 알 수 없습니다.
WordPress 와 해당 플러그인을 업데이트하는 것은 PHP 를 업데이트하는 것과 별개의 일입니다. 관리 화면의 '업데이트'를 클릭해도 PHP 버전이 변경되지 않을 수 있습니다.
렌탈 서버를 이용하는 사람들은 계약한 업체의 공지사항을 확인합니다. PHP 에서는 Linux 배포판에 사전에 수정이 적용되었다고 명시되어 있습니다. 공지사항 유무는 계약 업체마다 다릅니다. 스스로 VPS 나 서버를 직접 관리하는 사람은 다음입니다.
개발 중인 사람
사용 가능한 위치를 찾습니다. 설명서에 PHP 가 명시되어 있더라도 제품 내부에 포함되어 있을 수 있습니다. 동봉 제품 목록은 NCSC-NL 에서 제공하고 있습니다. 해당 제품이 포함되어 있는지 본인의 환경에서 확인하시기 바랍니다.
PHP2Shell 은 명령어 행 (shell) 을 생성하여 PHP 코드를 실행할 수 있게 해주는 PHP 라이브러리입니다.
인터넷에서 공개된 최신 버전부터 먼저 업데이트합니다. PHP 는 8.2.35, 8.3.36, 8.4.27, 8.5.12 버전입니다. 업데이트 후 워커를 재시작해야 합니다. 오래된 프로세스가 남아있으면 버전만 변경된 것처럼 보일 수 있습니다.
8.1 이전에는 PHP 의 일반적인 수정 릴리스가 없었습니다. 배포처에서 대응 패키지를 제공하기도 했습니다. 7.4, 8.0, 8.1 에는 PHP 를 직접 컴파일하는 사람을 위한 최소한의 차이점이 포함되어 있습니다. 이는 일반적인 업데이트와 다릅니다.
즉시 업데이트가 불가능하다면 외부에서 전달되는 상태를 중단합니다. 임시 설정은 PHP 공식 문서에 나와 있습니다. 이는 업데이트를 대체할 수 없습니다.
2026 년 10 월 21 일: PHP 8.4.0 출시
Node.js 수정 버전은 22, 24, 26 시리즈에 한정되어 있으며, 각 버전은 22.23.4, 24.22.1, 26.12.1 입니다. 이 세 시리즈 외에는 이번 업데이트가 없습니다. 공식 문서에서는 지원 종료 시리즈가 영향을 받을 수 있다고 명시하고 있습니다.
패키지 관리로 앱 라이브러리만 설치해도 부족하므로, Node.js 런타임까지 포함하여 다시 설치합니다.
나 자신
직장인용 장부는 개발 중이며, PHP 나 Node.js 를 사용하지 않고 있습니다.
리리스 후 취약점이 발견되는 경우, 개인정보 보호를 최우선으로 대응하겠습니다.
오늘 할 일
오늘 직접 사용하고 있는 PHP 와 Node.js 의 버전을 확인하겠습니다.
수정이 가능하다면 오늘 업데이트하겠습니다. 수정이 불가능하다면 외부에서 접근할 수 없도록 하거나 공식 안내를 확인하겠습니다.
PHP 공식: https://www.php.net/archive/2026.php#2026-10-21-1
IPA(2026 년 10 월 22 일) https://www.ipa.go.jp/security/security-alert/2026/alert20261022.html
Node.js 공식: https://nodejs.org/en/blog/vulnerability/october-2026-security-releases
출처: note 원문
번역: Qwen 3.5(.48) 초벌 + 교정 24청크
원문 보기 | 출처: note.com