← 아티클 목록
업데이트phplaravel업데이트

PHP 7.2.16 업데이트 — 한국 Laravel 개발자 영향 분석

작성: 라라벨 코리아 (초안)

발행: 2026년 8월 6일

## 요약

요약

PHP 7.2.16이 2019년 3월 7일 릴리즈되었습니다. 이번 릴리즈는 EXIF 처리, MySQL LOCAL INFILE, PHAR 등 여러 보안 취약점을 포함한 다수의 버그 수정을 담고 있습니다. 특히 MySQL의 LOCAL INFILE 기본값 비활성화는 기존 애플리케이션의 동작 방식에 직접적인 영향을 줄 수 있어 실무에서 주의가 필요합니다.


핵심 내용

🔐 보안 관련 수정 사항

이번 PHP 7.2.16의 가장 중요한 변경점은 보안 관련 수정들입니다.

EXIF 처리 취약점 (다수)

  • #77509 exif_process_IFD_in_TIFF에서 초기화되지 않은 메모리 읽기
  • #77540 exif_process_SOFn에서 잘못된 메모리 읽기
  • #77563, #77659 exif_process_IFD_in_MAKERNOTE에서 초기화되지 않은 메모리 읽기

이미지 업로드 기능이 있는 서비스라면 외부에서 조작된 EXIF 데이터를 가진 이미지 파일을 통해 서버 메모리 정보가 노출될 수 있는 위험이 존재합니다. 사용자 업로드를 허용하는 모든 서비스는 즉시 업데이트가 권장됩니다.

MySQL LOCAL INFILE 기본값 변경 (⚠️ 동작 변경)

; php.ini — 기존 동작을 유지하려면 명시적으로 활성화 필요 mysqli.allow_local_infile = On
// PDO 사용 시 $pdo = new PDO($dsn, $user, $pass, [ PDO::MYSQL_ATTR_LOCAL_INFILE => true, ]);
  • LOCAL INFILE은 클라이언트 파일을 MySQL 서버로 직접 전송할 수 있는 기능으로, 공격자가 악의적인 MySQL 서버에 연결을 유도하면 서버의 임의 파일을 읽을 수 있는 SSRF 유형의 공격 벡터로 악용될 수 있습니다.
  • 이번 변경으로 기본값이 비활성화되었으므로, 기존에 LOAD DATA LOCAL INFILE을 사용하던 배치 처리, 대용량 데이터 임포트 스크립트가 갑자기 실패할 수 있습니다.

PHAR Null Pointer Dereference

  • #77396 phar_create_or_parse_filename에서 널 포인터 역참조
  • PHAR 아카이브를 처리하는 애플리케이션(Composer 포함)에 영향을 줄 수 있습니다.

Core: rename() 권한 우회 가능성

  • #77630 장치(device) 간 rename() 수행 시 처리 중 의도하지 않은 파일 접근 허용
  • 임시 파일을 이용한 원자적(atomic) 파일 교체 패턴을 사용하는 코드에서 잠재적 보안 위험이 있습니다.

🐛 주요 버그 수정 (7.2.12 ~ 7.2.16)

버전컴포넌트주요 수정 내용
7.2.16Coreparse_ini_string 숫자형 섹션 처리 시 코어 덤프
7.2.15Mbstringmb_scrub() 널 바이트 이후 묵시적 절단
7.2.15OpenSSLTLS 스트림 단편화 레코드에서 feof()
7.2.14Mbstring정규식 함수들의 힙 버퍼 오버플로우 (다수)
7.2.14GDimagescale(), imagecolormatch() 등 메모리 취약점
7.2.13IMAPimap_open을 통한 임의 셸 명령 실행 (심각)
7.2.12Sodiumsodium_pad() 미초기화 메모리 읽기
7.2.11CoreSPL 이터레이터 method_exists 메모리 손상

특히 주목할 점: 7.2.13에서 수정된 imap_open의 임의 셸 명령 실행 취약점(#77153)은 IMAP 확장을 사용하는 메일 처리 애플리케이션에 매우 심각한 위협입니다. 아직 7.2.12 이하를 사용 중이라면 최우선으로 업데이트해야 합니다.


📦 PDO_OCI 기능 추가

Oracle Database 추적 속성(ACTION, MODULE, CLIENT_INFO, CLIENT_IDENTIFIER) 지원이 추가되었습니다. Oracle DB를 사용하는 엔터프라이즈 환경에서 애플리케이션 레벨 쿼리 추적이 가능해집니다.


한국 Laravel 개발자에게 미치는 영향

Laravel 버전별 호환성

PHP 7.2는 Laravel 5.6 ~ 6.x 시리즈와 공식 호환됩니다. 현재 이 범위의 Laravel 버전을 운영 중인 서비스는 PHP 7.2.16으로의 업데이트를 검토해야 합니다.

MySQL LOCAL INFILE 비활성화의 실무 영향

Laravel에서 주로 영향을 받는 시나리오:

// 이 패턴을 사용하는 경우 7.2.16 업그레이드 후 실패할 수 있음 DB::statement("LOAD DATA LOCAL INFILE '/tmp/data.csv' INTO TABLE users ...");

Seeder나 배치 임포트에서 LOAD DATA LOCAL INFILE을 직접 사용하는 경우, config/database.php의 MySQL 옵션에 다음을 추가해야 합니다:

// config/database.php 'mysql' => [ // ... 'options' => [ PDO::MYSQL_ATTR_LOCAL_INFILE => true, ], ],

또는 php.ini / .user.ini 수정:

mysqli.allow_local_infile = On

Valet / Sail / Docker 환경별 업데이트 방법

Laravel Valet (macOS, Homebrew)

brew upgrade php@7.2valet restartphp -v  # PHP 7.2.16 

Laravel Sail (Docker)

# docker-compose.yml에서 PHP 이미지 버전 확인 후 docker compose pull docker compose up -d --build

Sail의 공식 이미지(laravelsail/php72)가 7.2.16 기반으로 업데이트되었는지 Docker Hub에서 확인하세요.

직접 서버 운영 (Ubuntu/CentOS)

# Ubuntu (ondrej/php PPA) sudo apt-get update && sudo apt-get upgrade php7.2 # CentOS (Remi 저장소) sudo yum update php72

보안 우선순위 평가

취약점영향 범위긴급도
EXIF 다중 메모리 취약점이미지 업로드 서비스🔴 높음
IMAP 셸 명령 실행 (7.2.13)IMAP 사용 메일 앱🔴 높음
Mbstring 힙 오버플로우 (7.2.14)한국어 처리 애플리케이션🔴 높음
PHAR Null PointerComposer 사용 환경 전반🟡 중간
rename() 권한 우회파일 교체 로직🟡 중간

한국어 처리 주의: mbstring 힙 버퍼 오버플로우는 한국어, 일본어, 중국어 등 멀티바이트 문자를 집중적으로 처리하는 서비스에서 공격 표면이 더 넓을 수 있습니다. 한국어 텍스트를 외부 입력으로 받아 mb_ 함수로 처리하는 Laravel 애플리케이션은 특히 주의가 필요합니다.


실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Homebrew 또는 패키지 관리자를 통해 PHP 7.2.16으로 업데이트
  • 업데이트 후 composer install 및 기본 기능 동작 확인
  • LOAD DATA LOCAL INFILE을 사용하는 Seeder/마이그레이션이 있다면 로컬에서 동작 테스트

스테이징 환경

  • PHP 버전 업데이트 적용
  • php.ini에서 mysqli.allow_local_infile 설정 필요 여부 검토
  • config/database.php의 PDO 옵션 설정 확인
  • 이미지 업로드 관련 EXIF 처리 기능 테스트 (정상 이미지 및 손상된 이미지)
  • Mbstring을 사용하는 한국어 처리 로직 회귀 테스트
  • PHAR 기반 도구(Composer, PHPUnit 등) 정상 동작 확인
  • 애플리케이션 로그에서 새로운 경고/오류 메시지 확인

운영(Production) 환경

  • 유지보수 모드 전환: php artisan down
  • PHP 7.2.16 패키지 업데이트 적용
  • PHP-FPM 또는 웹서버(Apache/Nginx) 재시작
  • php -v로 업데이트 버전 확인
  • php artisan config:cachephp artisan route:cache 재실행
  • Opcache 캐시 초기화 (opcache_reset() 또는 PHP-FPM 재시작)
  • 헬스체크 엔드포인트 및 주요 기능 스모크 테스트
  • 유지보수 모드 해제: php artisan up
  • 배포 후 30분간 에러 로그 및 모니터링 대시보드 집중 감시

추가 확인 사항

  • imap_open을 사용하는 코드가 있다면 즉시 7.2.13 이상으로 업데이트 여부 재확인
  • rename()을 통한 원자적 파일 교체를 사용하는 코드 검토 (임시 파일 처리 로직)
  • Docker 기반 환경이라면 베이스 이미지 업데이트 후 이미지 재빌드 및 레지스트리 푸시

⚠️ 편집자 검토 필요: PHP 7.2는 현재(2019년 기준) 보안 지원이 2020년 11월까지 예정되어 있습니다. 장기적으로는 PHP 7.3 또는 7.4로의 마이그레이션 계획을 수립하는 것을 권장합니다. 해당 업그레이드 경로에 대한 별도 가이드 작성을 고려해주세요.