데일리 · 기사 01 · 5 분 읽기 · 연재 3 화
- 보안
PHP, 업데이트 뒤 업로드 진행률 추가 점검 권고
10월 23일 공식 발표·안내 · 원문 재확인 10월 24일 15:52 JST
요약·개요
PHP가 10월 23일 특정 세션 설정·코드 조합에 추가 보안 권고를 냈습니다. 서버 운영자는 호스팅에 진행률 추적 설정과 세션 형식 변경 여부를 물어야 합니다. 이미 추적을 껐다면 다음 정기 수정판까지 유지합니다.
핵심 팩트
- 누가 볼 안내인가: 서버에서 PHP를 운영하는 담당자입니다. 원격 코드 실행(RCE)은 공격자가 서버에서 원치 않는 코드를 실행하게 되는 문제로, 접근 권한에 따라 정보 탈취나 사이트 변조로 이어질 수 있습니다.
- 지금 할 일: 호스팅 담당자에게 “이 앱의 PHP 업로드 진행률 추적이 꺼져 있나요? 세션 형식을 실행 중에 바꾸는 코드도 있나요?”라고 묻습니다. 이미 추적을 껐다면 유지합니다.
- 패치 상태: 8.5.12·8.4.27·8.3.36·8.2.35는 앞선 두 결함의 수정판입니다. 10월 23일 추가 안내는 특정 설정·코드 조합에 관한 것으로, 새 수정 버전 번호나 날짜는 발표하지 않았습니다.
- PHP는 10월 23일 19:12:28 JST에 다음 정기 수정판까지
session.upload_progress.enabled=0을 권고했습니다. 추가 사안의 번호는CVE-2026-115560이며 정식 보안 안내는 다음 릴리스와 함께 낼 예정입니다. 실행 중 세션 형식을 바꾸지 않는 앱은 기능을 켜둘 수 있다는 예외도 함께 밝혔습니다.PHP 공식 추가 안내

1. 사진을 보내는 일과 진행률을 기록하는 일
사진을 올릴 때 보이는 진행 막대를 생각해 봅시다. 파일은 서버로 이동하고, PHP의 진행률 추적은 그동안의 전송 상태를 세션 자료에 기록합니다. 그 기능을 사용하는 앱은 기록을 읽어 진행 상황을 표시할 수 있습니다.기능 설명
세션은 여러 요청에 걸쳐 이어 쓸 자료를 서버에 보관하는 방식입니다. 예를 들어 앱이 진행률을 다시 물어볼 때, 서버가 앞서 기록한 상태를 찾는 데 쓸 수 있습니다. 자료를 저장하고 다시 읽을 형식은 session.serialize_handler가 정합니다.세션 설정
- 사진을 서버로 전송파일이 이동하는 일
- 전송 상태를 세션에 기록PHP 진행률 추적이 맡는 일
- 앱이 기록을 읽어 진행률 표시그 기능을 쓰는 앱의 표시
진행률 추적을 끄면 상태 기록이 멈춥니다. 파일 업로드와 앱의 진행 표시는 각각 시험합니다.
고양이와 풀어보기 Q&A
- 고양이 연구원
진행률은 왜 서버에도 기록해?
포켓 노트앱이 서버 쪽 전송 상태를 다시 물어볼 수 있게 하려는 거야. 이 추적을 끄는 것과 파일 전송 자체를 막는 것은 별개라, 변경 뒤에는 업로드와 진행 표시를 각각 시험하면 돼.
2. 세 가지 조건이 함께 있는지 보기
공지에 적힌 조합은 시작 설정의 형식이 php_binary 또는 php_serialize이고, 앱이 실행 도중 ini_set()으로 이를 php로 바꾼 뒤 session_start()를 호출하며, 진행률 추적도 켜져 있는 경우입니다.
ini_set()은 실행 중 일부 설정을 바꾸는 함수이고, session_start()는 새 세션을 시작하거나 기존 자료를 읽어 이어 쓰는 함수입니다. 따라서 관리자 화면의 설정값 하나뿐 아니라, 세션을 읽기 전 앱이 어떤 순서로 움직이는지도 봐야 합니다.설정 변경 함수 · 세션 시작 함수
- 시작 설정: php_binary 또는 php_serialize
- +앱이 ini_set()으로 php로 바꾼 뒤 session_start() 호출
- +PHP 업로드 진행률 추적도 켜짐
이 조합에 해당하는지 살피고, 이미 진행률 추적을 껐다면 유지합니다.
고양이와 풀어보기 Q&A
- 고양이 연구원
관리자는 설정을 보고, 개발자는 코드를 봐야 하는 거야?
포켓 노트호스팅 담당자는 웹 PHP의 실제 설정을, 앱·플러그인 담당자는 세션 시작 전에 형식을 바꾸는지 볼 수 있어. 둘을 합쳐야 공지의 조합에 해당하는지 판단할 수 있어.
3. 같은 버전으로 표시되는 세 사이트
다음은 실제 진단이 아닌 가상의 ‘달 호스팅’ 사례입니다. 세 사이트 모두 PHP 8.4.27이지만 설정과 코드가 달라, 이번 안내에 비춰 볼 결과도 달라집니다.
A · 형식을 유지
- 시작 형식
- php
- 실행 중 변경
- 바꾸지 않음
- 진행률 추적
- 켜짐
- 이번 경로에 대한 판단
- 명시된 형식 변경 조건에 해당하지 않음
B · 시작 전에 형식 변경
- 시작 형식
- php_serialize
- 실행 중 변경
- php로 변경 → 세션 시작
- 진행률 추적
- 켜짐
- 이번 경로에 대한 판단
- 공지의 조합에 해당하므로 대응 필요
C · 진행률 추적 비활성화
- 시작 형식
- php_serialize
- 실행 중 변경
- php로 변경 → 세션 시작
- 진행률 추적
- 꺼짐
- 이번 경로에 대한 판단
- 이 경로에 대한 권고 설정을 적용한 상태
고양이와 풀어보기 Q&A
- 고양이 연구원
A와 B는 버전이 같은데 왜 대응이 달라?
포켓 노트버전은 설치된 PHP를 보여주고, 카드는 그 위에서 쓰는 설정과 처리 순서를 보여줘. 앞선 두 결함을 고친 업데이트는 유지하면서 이번 조건도 따로 살펴야 해.
4. 호스팅에 물을 내용과 적용 뒤 시험
운영 담당자에게는 “이 앱의 웹 PHP에서 session.upload_progress.enabled의 유효값과 시작 시 세션 형식은 무엇인가요? 앱이 세션 시작 전에 형식을 바꾸나요? 이번 권고와 후속 수정 계획은 어떻게 되나요?”라고 물을 수 있습니다.
이 항목은 앱 본문의 ini_set() 한 줄로 끄는 설정이 아닙니다. PHP 문서는 INI_PERDIR 항목으로 분류하며, 실제 적용 위치는 제공사와 살펴야 합니다. 이전 보안 공지의 적용 지침은 요청을 해석하기 전에 적용되는 php.ini·FPM 풀·서버 설정과 모든 작업 프로세스의 재시작을 요구하고, ini_set()이나 FPM의 .user.ini에 의존하지 말라고 명시합니다.설정 가능 위치 · PHP 적용 지침
변경 뒤에는 사진 업로드, 진행 표시, 로그인·세션 기능을 각각 시험합니다. PHP 버전 변경이 필요하면 백업과 테마·플러그인 호환성도 먼저 살핍니다.WordPress 운영 안내
고양이와 풀어보기 Q&A
- 고양이 연구원
껐다는 답을 받으면 어떤 기록을 남겨?
포켓 노트이 앱의 웹 요청에 적용된 값, 적용 위치와 시각을 남기면 돼. 기능 시험 결과와 다음 수정 패키지 계획도 같이 두면 후속 조치를 이어가기 쉬워.
5. Cloudways 종료 공지의 범위
서버 환경을 제공·관리하는 호스팅 업체 Cloudways는 기존 PHP 사건을 10월 23일 21:38:45 JST에 resolved로 바꿨습니다. 종료 문구에는 새 CVE나 개별 앱 설정의 점검 결과가 없습니다.Cloudways 공지
앞서 취재한 앱의 웹 PHP 8.4.27 관측은 10월 22일 14:03 JST의 기록입니다. 이번 편집에서는 해당 앱의 설정·코드를 새로 조회하거나 바꾸지 않았으므로, 새 조건의 해당 여부는 미확정입니다.
고양이와 풀어보기 Q&A
- 고양이 연구원
호스팅의 사건 종료와 내 앱 점검 결과는 어떻게 남겨?
포켓 노트제공사의 종료 시각은 기존 배포 기록으로 두고, 이번 세션 조건에 대한 답변은 앱별 점검 기록으로 따로 남기면 돼. 과거 버전 관측을 새 설정 점검으로 바꾸어 적지 않는 거야.
마무리
다음 수정판까지 이어갈 대응
이미 적용한 보안 업데이트와 진행률 추적 비활성화를 유지합니다. 다음 정기 릴리스에서는 CVE-2026-115560의 수정 포함 여부와 제공사의 웹 PHP 적용을 함께 살펴야 합니다.
출처
- PHP 공식 추가 안내php.net
- 기능 설명php.net
- 세션 설정php.net
- 설정 변경 함수php.net
- 세션 시작 함수php.net
- 설정 가능 위치php.net
- PHP 적용 지침php.net
- WordPress 운영 안내wordpress.org
- Cloudways 공지status.cloudways.com