PHP 7.2.19 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.2.19는 2019년 5월 30일에 릴리스된 보안 패치 버전으로, EXIF, GD, Iconv 확장에서 발견된 힙 버퍼 오버플로우 및 범위 초과 읽기 취약점(CVE 포함)을 수정합니다. JSON Use-after-free, SQLite open_basedir 우회 등 안정성 관련 버그도 함께 수정되었으며, PHP 7.2 브랜치를 사용 중인 운영 환경에서는 즉각적인 업그레이드가 필요합니다.
핵심 내용
🔴 보안 취약점 수정 (CVE 항목)
이번 7.2.19 릴리스에 포함된 CVE 항목은 다음과 같습니다. 모두 원격 또는 조작된 입력을 통해 트리거될 수 있는 메모리 관련 취약점입니다.
| CVE 번호 | 대상 확장 | 버그 번호 | 설명 |
|---|---|---|---|
| CVE-2019-11040 | EXIF | #77988 | php_jpg_get16에서 힙 버퍼 오버플로우 |
| CVE-2019-11038 | GD | #77973 | gdImageCreateFromXbm에서 초기화되지 않은 읽기 |
| CVE-2019-11039 | Iconv | #78069 | _php_iconv_mime_decode()에서 정수 오버플로우로 인한 범위 초과 읽기 |
⚠️ 특히 주의: 이미지 업로드 기능이나 EXIF 데이터를 처리하는 서비스, iconv 기반 문자 인코딩 변환 로직이 있는 애플리케이션은 직접적인 영향권 안에 있습니다. 한국 서비스 특성상 다국어(UTF-8/EUC-KR) 변환에 iconv를 활용하는 경우가 많으므로 CVE-2019-11039는 각별히 확인이 필요합니다.
🟠 안정성 버그 수정 (7.2.19 기준)
- JSON (#77843):
json_serialize사용 시 Use-after-free 발생. 직렬화 로직이 복잡한 애플리케이션(예: API 서버, 큐 워커)에서 간헐적 크래시를 유발할 수 있었던 문제입니다. - SQLite (#77967):
file://URI를 통해open_basedir제한을 우회할 수 있는 문제. 공유 호스팅 또는 멀티테넌트 환경에서 보안 경계 침해 가능성이 있습니다. - FPM (#77934):
kill -USR2시그널로 php-fpm graceful reload가 작동하지 않는 문제. 무중단 배포(graceful reload) 스크립트를 사용하는 환경에서 배포 자동화 오작동의 원인이 될 수 있었습니다. - Opcache: PCRE 캐시와 Opcache SHM 리셋 간 불일치로 인한 간헐적 크래시 수정.
- PDO_MySQL (#77944): LLP64 환경(Windows 64비트)에서 bigint 컬럼의
pdo_type메타 정보가 잘못 반환되는 문제.
🟡 이전 마이너 릴리스(7.2.14~7.2.18)의 주요 누적 수정 사항
7.2.19 이전 버전에서 업그레이드하는 경우 아래 사항도 함께 적용됩니다.
- MySQL LOCAL INFILE 기본값 비활성화 (7.2.16):
mysqli.allow_local_infile/PDO::MYSQL_ATTR_LOCAL_INFILE이 기본false로 변경되었습니다. 기존에LOAD DATA LOCAL INFILE을 사용하던 배치 처리, 데이터 임포트 스크립트가 있다면 반드시 php.ini 또는 PDO 속성 설정을 확인해야 합니다. - Mbstring 다수 힙 오버플로우 수정 (7.2.14): 멀티바이트 정규식(
mb_ereg*) 관련 대규모 보안 패치. 한국어 처리에 Mbstring을 집중적으로 사용하는 서비스라면 7.2.13 이하 버전에서 장기간 노출됐을 수 있습니다. - IMAP 임의 셸 명령 실행 취약점 수정 (7.2.13):
imap_open()의 mailbox 파라미터를 통한 셸 명령 실행 가능성 수정. IMAP을 직접 사용하는 메일 서비스라면 즉시 점검이 필요합니다. - DNS 응답 조작을 통한 memcpy 음수 길이 버그 수정 (7.2.14, #77369): 네트워크 요청이 많은 애플리케이션에서 악용 가능성이 있었던 코어 버그입니다.
한국 Laravel 개발자에게 미치는 영향
호환성 및 Laravel 버전
- PHP 7.2.x는 Laravel 5.6~6.x를 지원합니다. 해당 버전 브랜치를 유지보수 중인 프로젝트에 직접 해당합니다.
- Laravel 자체 코드에는 변경이 없으므로 PHP 버전만 업그레이드하면 됩니다. Composer 의존성 재설치는 불필요합니다.
마이그레이션 노력도
- 낮음 (패치 버전 업그레이드): 7.2.x → 7.2.19는 바이너리 교체 수준입니다. API 변경 없음.
- 단, MySQL LOCAL INFILE 기본값 변경(7.2.16)은 브레이킹 체인지에 준하는 동작 변경입니다. 7.2.15 이하에서 바로 7.2.19로 올리는 경우 이 동작 변경을 인지해야 합니다.
보안 긴급도
- 즉각 업그레이드 권장: CVE-2019-11039(iconv), CVE-2019-11040(EXIF)는 사용자 입력(이미지 업로드, HTTP 헤더, 문자 인코딩 변환)을 통해 트리거될 수 있어 공개 서비스에 직접적인 위협입니다.
로컬 개발 환경별 참고
- Laravel Valet (macOS):
brew upgrade php@7.2후valet restart로 적용. Homebrew 공식 탭에서 7.2.19 제공 여부를 먼저 확인하세요 (brew info php@7.2). - Laravel Sail / Docker: 사용 중인
php:7.2-fpm또는 커스텀 Dockerfile의 베이스 이미지 태그를 확인하고,docker pull또는docker build --no-cache로 최신 패키지가 반영된 이미지를 재빌드하세요. - 공유 호스팅 / 가비아·카페24 등 국내 호스팅: PHP 버전 선택 패널에서 7.2.19 이상이 제공되는지 확인하고, 지원되지 않는 경우 호스팅사에 업데이트를 요청하거나 VPS 전환을 고려하세요.
- AWS Elastic Beanstalk / EC2: Amazon Linux 2의 경우
amazon-linux-extras또는 Remi 저장소를 통해 PHP 7.2 패키지 업데이트를 적용할 수 있습니다.
실무 체크리스트
로컬 환경
-
php -v로 현재 PHP 버전 확인 - 패키지 매니저로 업그레이드:
brew upgrade php@7.2(macOS) /apt-get upgrade php7.2(Ubuntu) /yum update php72(CentOS/Remi) - 업그레이드 후
php -v로 7.2.19 반영 확인 -
php -m으로 iconv, exif, gd 확장 정상 로드 확인 -
php-fpm -t(또는php-fpm7.2 -t)로 FPM 설정 문법 오류 없음 확인
MySQL LOCAL INFILE 사용 여부 확인
- 프로젝트 전체에서
LOAD DATA LOCAL INFILE또는LOAD DATA INFILE사용 여부 검색grep -rn "LOCAL INFILE\|local_infile" ./app ./database ./config - 사용 중이라면
php.ini에mysqli.allow_local_infile = On추가 또는 PDO 연결 시PDO::MYSQL_ATTR_LOCAL_INFILE => true설정 - Laravel
.env및config/database.php의 PDO options 배열 확인
EXIF / 이미지 업로드 처리 코드 점검
-
exif_read_data(),exif_imagetype()등을 사용하는 컨트롤러/서비스 코드 확인 - 업로드된 파일의 MIME 타입과 실제 내용 검증 로직이 있는지 확인 (업스트림 방어)
- Intervention Image 등 이미지 처리 패키지 사용 시 내부적으로 GD/EXIF 호출 여부 확인
iconv 사용 코드 점검
-
iconv(),iconv_mime_decode()직접 호출 코드 검색grep -rn "iconv\b\|iconv_mime" ./app - Laravel
mb_*함수 사용 코드는 iconv가 아닌 Mbstring 백엔드이므로 별도 영향 없음 (단, Mbstring 자체 패치도 누적 적용됨)
php-fpm Graceful Reload 재확인
- 무중단 배포 스크립트에서
kill -USR2 $(cat /var/run/php-fpm.pid)방식을 사용 중이라면 7.2.19 업그레이드 후 정상 동작 테스트 - Supervisor, systemd 또는 Envoyer를 통한 배포 시에도 FPM reload 커맨드 동작 확인
스테이징 → 운영 배포
- 스테이징에서
php artisan test(또는 PHPUnit) 전체 테스트 통과 확인 - 스테이징에서 이미지 업로드, 문자 인코딩 변환, JSON API 응답 등 영향 범위 기능 수동 테스트
- 운영 서버 배포 전 Opcache 캐시 초기화 계획 수립:
php artisan opcache:clear또는 FPM reload - 배포 후 애플리케이션 에러 로그(
storage/logs/laravel.log) 및 PHP-FPM 에러 로그 모니터링
⚠️ 드래프트 검토 참고: PHP 7.2 브랜치는 2020년 11월 보안 지원이 공식 종료되었습니다. 7.2.19로의 즉각 업그레이드와 함께, PHP 8.x 마이그레이션 일정을 수립하는 것을 강력히 권장합니다. 이 문서는 7.2.19 릴리스 시점(2019년 5월) 기준의 정보를 담고 있으며, 현재 운영 환경에서의 최신 권고 사항은 php.net 공식 보안 공지를 별도로 확인하세요.