Huny's Dev Blog
huny.dev

PHP를 업데이트했는데 버전은 그대로? Windows 보안 재빌드의 -1 확인하기

PHP Windows의 Brotli 보안 재빌드는 런타임 버전이 바뀌지 않는다. -1 패키지 식별자와 cURL·Brotli 정보를 구분하고 실제 서비스 배포를 검증하는 방법을 정리한다.

Hun Jang
Hun Jang Oct 27, 2026

겉으로 보이는 버전 뒤의 의존성 교체를 표현한 생성형 개념 이미지. 실제 PHP 화면이나 서버 사진이 아니다.

PHP 보안 업데이트를 적용한 뒤 php -v를 확인했는데 이전과 같은 버전이 표시될 수 있다. Windows 패키지 재빌드는 PHP 소스를 그대로 두고 포함된 라이브러리만 바꿀 수 있기 때문이다. 이번에는 실행 파일의 PHP 버전과 배포 패키지의 식별자를 함께 확인해야 한다.

PHP는 October 26, 2026 Windows용 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1을 발표했다. Brotli 1.2.1을 포함하는 보안 재빌드이며, PHP 런타임 버전 자체는 변하지 않는다. PHP 공식 발표

2026년 10월 27일 직접 확인·캡처한 PHP 공식 공지. Windows 재빌드 버전과 런타임 버전이 그대로라는 설명을 볼 수 있다.

무엇이 수정됐나

Brotli는 압축 데이터를 처리하는 라이브러리다. Google의 Brotli 1.2.1 릴리스는 CVE-2026-111497을 수정하며, 범위를 벗어난 메모리 쓰기가 원격 코드 실행으로 이어질 수 있다고 설명한다.

PHP 공식 공지에서 설명하는 Windows 경로는 cURL 확장을 통한 HTTP 응답 자동 압축 해제다. cURL 기본값에서는 꺼져 있지만 애플리케이션이나 HTTP 클라이언트 라이브러리가 켤 수 있다. “설정한 기억이 없다”는 사실만으로 실제 호출 경로까지 꺼져 있다고 판단하기는 어렵다.

이번 -1은 새 PHP 언어 버전이나 프리릴리스 표시가 아니라 의존성을 갱신한 Windows 패키지 재빌드 식별자다. Linux 배포판이나 직접 빌드한 환경까지 동일한 파일명 규칙을 적용하면 안 된다. 해당 공급자의 보안 패키지를 확인한다.

PHP2Shell 업데이트와 구분하기

October 21, 2026 발표된 PHP2Shell의 두 취약점과 이번 Brotli 수정은 구분해야 한다. 앞선 PHP 런타임 보안 릴리스를 설치했더라도, Windows 패키지에 포함된 의존성의 추가 갱신 여부는 별도 확인 항목이다. PHP 10월 21일 보안 공지

“이번 주에 한 번 업데이트했다”는 작업 기록만으로 끝내지 말고, 어느 패키지를 어느 서비스에 적용했는지를 기록하는 편이 낫다.

확인용 코드는 실제로 실행되는 환경에서

아래 코드는 PHP와 cURL이 보고하는 버전 정보를 출력하는 점검 예제다. 여기서 Windows 서버에 실행하거나 취약점을 재현한 결과는 아니다.

curl_version()은 cURL 버전과 연결된 라이브러리 정보를 반환한다. 공식 반환값에는 brotli_version도 포함된다. Brotli 없이 빌드됐다면 빈 문자열일 수 있다. PHP curl_version 문서

키가 없거나 값이 비었다고 해서 시스템 전체가 안전하다는 결론을 내리면 안 된다. 현재 확인한 PHP 실행 환경이 보고한 정보일 뿐이다. CLI에서 실행한 PHP와 웹 서버가 사용하는 PHP 경로·설정이 같은지도 확인한다.

이 코드를 공개 진단 페이지로 올리는 것은 권하지 않는다. 내부 점검 환경에서 실행하고 결과를 운영 기록에 남긴다.

배포할 때 남길 확인 기록

다음은 공식 공지를 바탕으로 정리한 운영 체크리스트다.

  1. 서비스가 실제 사용하는 PHP 설치 경로와 실행 방식을 찾는다.
  1. 공식 Windows 다운로드에서 해당 분기의 재빌드 패키지를 선택한다. 아키텍처와 TS/NTS를 기존 서비스 구성에 맞춘다.
  1. 다운로드 페이지의 해시와 받은 파일을 비교하고, 파일명·해시·다운로드 일자를 보관한다.
  1. 변경 전 설정과 확장 구성을 백업하고 테스트 환경에서 주요 요청을 확인한다.
  1. 승인된 배포 절차에 따라 교체한 뒤, 기존 라이브러리를 붙잡고 있는 워커가 남지 않도록 서비스를 재시작하거나 교체한다.
  1. 재시작 후 실제 서비스 환경에서 버전 정보와 주요 HTTP 클라이언트 동작을 다시 확인한다.

공식 다운로드 안내는 IIS FastCGI에 NTS 빌드를 사용하도록 설명한다. TS/NTS를 단순히 “더 안전한 옵션”으로 고르지 말고 실행 방식에 맞춰야 한다. PHP Windows 다운로드 및 설치 안내

핵심은 버전 숫자를 하나 더 외우는 것이 아니다. 런타임 버전, 패키지 리비전, 포함된 라이브러리, 실제 배포된 프로세스를 따로 확인해야 보안 업데이트가 끝났는지 설명할 수 있다.

참고 자료

공개 자료 확인 기준: October 27, 2026. 실제 서버 업데이트·성능 측정·공격 재현을 수행한 후기가 아니라 공식 발표와 점검 방법을 정리한 글이다.

추천 글