PHP 7.2.20 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.2.20은 2019년 7월 4일 릴리스된 PHP 7.2 브랜치의 패치 버전으로, Core, DOM, MySQLi, Opcache, OpenSSL, Sockets, Standard, Zip 등 다양한 영역에서 버그를 수정합니다. 이 버전 자체의 보안 픽스는 포함되지 않지만, 이전 마이너 버전들(7.2.16~7.2.19)에는 다수의 CVE 보안 취약점 수정이 포함되어 있어 7.2.x 사용자라면 반드시 최신 패치로 업그레이드해야 합니다. Laravel 프로젝트 운영자라면 Opcache 파일 캐시 버그 수정과 MySQLi 관련 수정 사항에 특히 주목할 필요가 있습니다.
핵심 내용
PHP 7.2.20 직접 수정 사항
Core
- Bug #76980: 오토로더(autoloader)가 예외를 던질 때 인터페이스 정보가 누락되는 버그 수정. Laravel의 PSR-4 오토로딩 환경에서 예외 처리 흐름이 복잡한 경우 영향을 받을 수 있었습니다.
DOM
- Bug #78025:
DOMDocumentType의 프로퍼티에 접근할 때 세그멘테이션 폴트(segfault)가 발생하던 문제 수정. XML 파싱을 사용하는 패키지(예:sabre/xml, RSS 피드 처리 등)에 영향을 미칩니다.
MySQLi
- Bug #77956:
mysqli.allow_local_infile = Off설정 시 오류 메시지가 불명확하던 문제를 개선. 이제 사용자가 왜LOAD DATA LOCAL INFILE이 실패하는지 명확히 알 수 있습니다. - Bug #38546:
bindParam()에서bool타입이 잘못 처리되던 오래된 버그 수정. PDO보다 MySQLi를 직접 사용하는 레거시 코드에서 데이터 무결성 문제를 일으킬 수 있었습니다.
Opcache
- Bug #78106: 요청 중 opcache가 비활성화된 경우 경로 해석이 실패하던 버그 수정.
- Bug #78185: 파일 캐시(File Cache)가 더 이상 작동하지 않던 버그 수정 — 이는 실무 영향이 큰 수정입니다.
opcache.file_cache디렉티브를 사용하는 환경(특히 컨테이너 기반 배포에서 공유 메모리 대신 파일 캐시를 활용하는 경우)에서 캐시가 무력화되던 심각한 문제입니다.
Standard
- Bug #77135:
extract()에서EXTR_SKIP옵션 사용 시$this를 덮어쓰던 버그 수정.extract()를 Controller나 Model 내부에서 사용하는 코드에서 잠재적 보안/논리 오류를 유발할 수 있었습니다. - Bug #77937:
preg_match실패 버그 수정. 정규식 기반 유효성 검사(Validation)에 간헐적 오류를 유발할 수 있었습니다.
이전 버전들의 주요 보안 수정 (7.2.16 ~ 7.2.19)
7.2.20으로 업그레이드하면 아래 CVE 픽스도 함께 적용됩니다.
| 버전 | CVE | 영역 | 설명 |
|---|---|---|---|
| 7.2.19 | CVE-2019-11040 | EXIF | heap-buffer-overflow |
| 7.2.19 | CVE-2019-11038 | GD | 초기화되지 않은 읽기 |
| 7.2.19 | CVE-2019-11039 | Iconv | 정수 오버플로로 인한 OOB 읽기 |
| 7.2.17 | CVE-2019-11034 | EXIF | heap-buffer-overflow |
| 7.2.17 | CVE-2019-11035 | EXIF | heap-buffer-overflow |
| 7.2.18 | CVE-2019-11036 | EXIF | heap-buffer-overflow |
중요:
7.2.16에서MySQL LOCAL INFILE이 기본값으로 비활성화되었습니다. 이 변경은 보안 강화를 위한 조치이며,LOAD DATA LOCAL INFILE을 사용하는 코드가 있다면mysqli.allow_local_infile = On또는PDO::MYSQL_ATTR_LOCAL_INFILE을 명시적으로 설정해야 합니다.
한국 Laravel 개발자에게 미치는 영향
호환성
- Laravel 5.5 ~ 5.8: PHP 7.2를 공식 지원합니다. 이 패치는 해당 버전 운영 환경에서 안정성 향상을 제공합니다.
- Laravel 6.x 이상: PHP 7.2를 최소 요구 버전으로 지원하므로, 아직 PHP 7.2를 유지 중인 팀에 해당합니다.
- PHP 7.2 브랜치는 2020년 11월 공식 EOL(End of Life)이 예정되어 있으므로, 7.2.20은 보안 패치가 아닌 버그픽스 릴리스입니다. 장기적으로는 PHP 7.4 또는 8.x로의 마이그레이션 계획이 필요합니다.
마이그레이션 부담
- 7.2.x 내의 패치 업그레이드이므로 코드 변경 없이 업그레이드 가능합니다.
- 단,
MySQL LOCAL INFILE기본값 비활성화(7.2.16 도입)는 기존 코드 동작에 영향을 줄 수 있으므로 확인이 필요합니다.
보안 긴급도
- 높음: 7.2.15 이하를 사용 중이라면 다수의 CVE 취약점에 노출된 상태입니다. 즉시 업그레이드를 권장합니다.
- 7.2.19를 이미 사용 중이라면 7.2.20은 보안 픽스 없이 안정성 개선 위주이므로 일정에 따라 업그레이드하면 됩니다.
로컬 개발 도구별 고려사항
Laravel Valet (macOS)
# Homebrew를 통해 PHP 업그레이드brew upgrade php@7.2valet restartHomebrew의 php@7.2 포뮬러가 7.2.20을 제공하는지 확인이 필요합니다. 제공되지 않는 경우 수동 빌드 또는 shivammathur/php tap 사용을 고려하세요.
Laravel Sail / Docker
php:7.2-fpm 공식 Docker 이미지를 사용하는 경우, 이미지를 최신 상태로 갱신하면 됩니다.
docker pull php:7.2-fpm
docker-compose down && docker-compose up -d --build
docker-compose.yml에서 이미지 버전을php:7.2-fpm으로 고정하지 않고 다이제스트로 고정했다면 명시적 갱신이 필요합니다.
PHP-FPM (운영 서버)
Opcache 파일 캐시 버그(#78185) 수정으로 인해 업그레이드 후 기존 캐시 파일을 초기화하는 것을 권장합니다.
# opcache 파일 캐시 디렉터리 초기화 (경로는 php.ini 설정에 따라 다름)rm -rf /tmp/opcache/*sudo systemctl reload php7.2-fpm실무 체크리스트
로컬 환경
- 현재 PHP 버전 확인:
php -v -
LOAD DATA LOCAL INFILE을 사용하는 코드가 있다면mysqli.allow_local_infile설정 확인 -
extract()를 사용하는 코드에서$this컨텍스트 내 사용 여부 점검 - Opcache 파일 캐시(
opcache.file_cache) 사용 여부 확인 후, 업그레이드 시 캐시 파일 삭제
스테이징 환경
- PHP 7.2.20으로 업그레이드 후
php -v로 버전 확인 -
php -m으로 주요 확장(MySQLi, OpenSSL, DOM, Zip)이 정상 로드되는지 확인 - Laravel 기능 테스트 실행:
php artisan test또는vendor/bin/phpunit - DOMDocument를 사용하는 XML/RSS 파싱 로직 통합 테스트
- MySQLi
bindParam()을 bool 타입으로 사용하는 쿼리 테스트 - 정규식(Validation Rule)이 포함된 테스트 케이스 이상 여부 확인
운영(Production) 환경
- 배포 전 스테이징 결과 확인 완료
- PHP-FPM 업그레이드 후 서비스 재기동:
sudo systemctl restart php7.2-fpm - Opcache 파일 캐시 초기화 (해당되는 경우)
- 업그레이드 후 에러 로그(
/var/log/php/또는 Laravelstorage/logs/) 모니터링 - APM 도구(New Relic, Datadog, Pinpoint 등)에서 에러율/응답시간 이상 여부 확인
- 장기 계획: PHP 7.2 EOL(2020년 11월)을 고려한 PHP 7.4 또는 8.x 마이그레이션 로드맵 수립 검토
⚠️ 편집자 주: 이 글은 초안입니다. PHP 7.2.20의 Changelog에 명시적 보안 CVE는 없으나, 이전 마이너 버전들의 CVE 내용을 함께 안내하였습니다. 독자 대상이 7.2.x 전체 시리즈 사용자인지 7.2.20 신규 변경 사항만 관심 있는 독자인지에 따라 섹션 분량 조정을 권장합니다.