지원 종료(EOL)란 — PHP2Shell 패치가 8.2까지만 나온 이유, 8.2도 2026년 12월 31일에 끝난다
End of life (EOL) is the point at which a software project stops releasing fixes, including security patches, for a version. When the PHP2Shell flaws were patched on October 21, 2026, regular fixes shipped only for PHP 8.2 through 8.5 because 8.1 had reached end of life on December 31, 2025; PHP 8.2 itself loses security support on December 31, 2026. Python 3.10 reached EOL on October 1, 2026 and Node.js 20 on April 30, 2026.
지원 종료(EOL, End of Life)는 개발 주체가 특정 버전에 보안 패치를 포함한 모든 수정을 더 내지 않는 시점이다. PHP는 버전마다 2년 적극 지원과 2년 보안 지원을 준 뒤 끝낸다. 그래서 2026년 10월 PHP2Shell 정규 패치는 8.2~8.5에만 나왔고, 2025년 말 지원이 끝난 8.1 이하는 빠졌다. 8.2도 2026년 12월 31일 지원이 끝난다
3줄 요약
- 정의 — 개발 주체가 그 버전에 보안 패치를 더 내지 않는 시점
- 구조 — 대개 '적극 지원 → 보안 수정만 → 지원 종료' 3단계
- 지금 — PHP 8.2 2026년 12월 31일, 파이썬 3.10은 10월 1일 이미 종료
핵심 질문
- EOL 뜻 소프트웨어
- **버전의 수명이 끝나 보안 패치도 더 나오지 않는 상태다.** | 단계 | 버그 수정 | 보안 패치 | |---|---|---| | 적극 지원(Active) | 예 | 예 | | 보안 수정만(Security) | 아니오 | 치명적인 것만 | | 지원 종료(EOL) | 아니오 | 아니오 |
- PHP 지원 버전 2026
- **2026년 10월 기준 8.2·8.3·8.4·8.5 네 개다.** | 버전 | 보안 지원 종료 | |---|---| | 8.2 | 2026년 12월 31일 | | 8.3 | 2027년 12월 31일 | | 8.4 | 2028년 12월 31일 | | 8.5 | 2029년 12월 31일 | | 8.1 | 2025년 12월 31일 종료(마지막 8.1.34) |
- 지원 종료 버전 계속 쓰면
- **새로 발견된 취약점이 영원히 열린 채 남는다.** | 위험 | 예 | |---|---| | 보안 패치 없음 | PHP2Shell 정규 패치 대상에서 8.1 이하 제외 | | 대안 비용 | 배포판·LTS 업체 유료 지원, 소스 직접 패치 | | 연쇄 | 라이브러리·프레임워크도 지원 중단 | | 규제 | 보안 인증·감사에서 지적 대상 |
같은 취약점인데 어떤 버전은 패치가 나오고 어떤 버전은 안 나온다. 그 경계가 '지원 종료(EOL)'다. 2026년 10월 21일 PHP 개발팀이 PHP2Shell 취약점을 고쳤을 때, 정규 패치는 PHP 8.2·8.3·8.4·8.5에만 나왔다. 8.1 이하는 이미 수명이 끝났기 때문이다. PHP 팀은 8.1·8.0·7.4용 최소한의 소스 수정을 따로 내놓았지만, 그 버전을 쓰는 곳은 직접 빌드하거나 배포판·LTS 업체에 기대야 한다.
EOL(End of Life)은 개발 주체가 특정 버전에 버그 수정도, 보안 패치도 더는 내지 않는 시점이다. 프로그램은 그날 이후에도 멀쩡히 돌아간다. 다만 새로 발견되는 구멍이 영원히 막히지 않는다.
1. 지원은 보통 세 단계로 끝난다
| 단계 | 버그 수정 | 보안 패치 | 정기 릴리스 |
|---|---|---|---|
| 적극 지원(Active support) | 예 | 예 | 예 |
| 보안 수정만(Security fixes only) | 아니오 | 치명적인 것만 | 필요할 때만 |
| 지원 종료(End of life) | 아니오 | 아니오 | 없음 |
PHP의 규칙은 단순하다. 각 버전은 첫 정식 출시 후 2년간 적극 지원, 이어서 2년간 치명적 보안 문제만 고친다. 4년이 지나면 지원이 끝난다. 다른 언어·런타임도 이름과 기간만 다를 뿐 구조는 비슷하다. Node.js는 짝수 버전을 장기 지원(LTS)으로 운영하고, 파이썬은 버전마다 약 5년을 지원한다.
2. 2026년 10월 현재 무엇이 살아 있나
PHP
| 버전 | 출시 | 적극 지원 종료 | 보안 지원 종료 | 상태 |
|---|---|---|---|---|
| 8.5 | 2025년 11월 20일 | 2027년 12월 31일 | 2029년 12월 31일 | 적극 지원 |
| 8.4 | 2024년 11월 21일 | 2026년 12월 31일 | 2028년 12월 31일 | 적극 지원 |
| 8.3 | 2023년 11월 23일 | 2025년 12월 31일 | 2027년 12월 31일 | 보안만 |
| 8.2 | 2022년 12월 8일 | 2024년 12월 31일 | 2026년 12월 31일 | 보안만 — 두 달 남음 |
| 8.1 | 2021년 | — | 2025년 12월 31일 | 종료(마지막 8.1.34) |
| 8.0 | 2020년 | — | 2023년 11월 26일 | 종료(마지막 8.0.30) |
| 7.4 | 2019년 | — | 2022년 11월 28일 | 종료(마지막 7.4.33) |
파이썬·Node.js
| 런타임 | 버전 | 보안 지원 종료 | 상태 |
|---|---|---|---|
| 파이썬 | 3.11 | 2027년 10월 31일 | 지원 중 |
| 파이썬 | 3.10 | 2026년 10월 1일 | 종료 |
| 파이썬 | 3.9 | 2025년 10월 31일 | 종료 |
| Node.js | 26 | 2029년 4월 30일 | 지원 중 |
| Node.js | 24 | 2028년 4월 30일 | 지원 중(적극 지원은 2026년 10월 20일 종료) |
| Node.js | 22 | 2027년 4월 30일 | 지원 중 |
| Node.js | 20 | 2026년 4월 30일 | 종료 |
PHP 8.2를 쓰는 곳은 이번에 8.2.35로 올려 PHP2Shell을 막았더라도, 2026년 12월 31일 뒤에 나오는 취약점은 공식 패치를 받지 못한다. 연내 8.3 이상으로 옮길 계획이 필요한 이유다. 파이썬 3.10과 Node.js 20은 이미 시한이 지났다. 10월 24일 다룬 Node.js 취약점 패치도 지원 중인 22·24·26 버전에만 나왔다(「Node2Shell(CVE-2026-111497)」).
3. 왜 끝난 버전을 계속 쓰게 되나
| 이유 | 실제 모습 |
|---|---|
| 호환성 | 오래된 프레임워크·플러그인이 새 버전에서 안 돈다 |
| 비용 | 코드 수정·테스트 인력과 시간이 든다 |
| 보이지 않는 곳 | 보안 장비·사내 장비 안에 내장된 런타임은 사용자가 못 바꾼다 |
| 착시 | 지원이 끝나도 프로그램은 정상 작동한다 |
마지막 줄이 가장 위험하다. EOL은 프로그램을 멈추지 않는다. 그래서 잊힌다. PHP2Shell 공지에서 팔로알토는 자사 방화벽 운영체제 PAN-OS의 모든 버전이 영향을 받는다고 밝혔다. 사용자가 PHP를 직접 깔지 않았어도 장비 안에 들어 있던 것이다. 내 서버의 버전 확인법은 같은 날 「PHP2Shell 취약점 패치 버전」에, 취약점 점수 읽는 법은 「CVSS란」에 정리했다.
점검 순서
| 순서 | 할 일 |
|---|---|
| 1 | 서버·컨테이너·장비별 런타임 버전 목록 만들기(php -v, python --version, node -v) |
| 2 | 각 버전의 보안 지원 종료일을 공식 페이지에서 확인 |
| 3 | 6개월 안에 끝나는 버전은 이전 계획 세우기 |
| 4 | 이미 끝난 버전은 배포판·LTS 업체 연장 지원 여부 확인 |
| 5 | 장비 공급사에 내장 런타임 지원 정책 문의 |
4. 남은 것과 확인되지 않은 것
- 연장 지원: 레드햇·우분투 같은 배포판과 LTS 업체가 공식 EOL 이후에도 패치를 내는 기간은 업체마다 다르다. 이 기사에서는 정리하지 않았다.
- PHP 8.2 일정: 2026년 12월 31일 종료는 php.net 표 기준이다. 연장 공지는 확인되지 않았다.