두 가지 치명적인 PHP 취약점 수정
최근 공격자가 민감한 정보를 탈취하고 시스템 충돌을 일으키며 영향을 받는 시스템에서 임의의 코드를 실행할 수 있는 두 가지 중요한 보안 취약점이 PHP에서 해결되었습니다. 이러한 취약점은 PHP가 특정 XML 파일(CVE-2023-3823)과 특정 PHAR 파일(CVE-2023-3824)을 부적절하게 처리하기 때문에 발생했습니다.
두 취약점 모두 8.0.30 이전 PHP 버전 8.0.*, 8.1.22 이전 8.1.*, 8.2.8 이전 8.2.*에서 발견되었습니다. 이러한 심각도가 높은 취약점을 수정하기 위해 새로운 PHP 업데이트가 제공되었습니다. 따라서 이러한 악용 가능한 취약점과 관련된 위험으로부터 시스템을 안전하게 보호하려면 가능한 한 빨리 최신 버전으로 업데이트하는 것이 중요합니다.
해결된 PHP 취약점
PHP에서 다양한 XML 함수는 외부 엔티티의 로딩을 포함한 구성 변수를 모니터링하기 위해 libxml 전역 상태에 의존합니다. 이 전역 상태는 일반적으로 사용자가 특정 함수를 통해 명시적으로 수정하지 않는 한 변경되지 않은 상태로 유지되는 것으로 가정합니다.
그러나 이 상태는 전체 프로세스에서 공유되므로 동일한 프로세스 내에서 작동하는 ImageMagick과 같은 다른 모듈도 이 라이브러리와 상호 작용하여 자체 내부 용도로 전역 상태를 수정할 수 있습니다. 따라서 글로벌 상태는 외부 엔티티 로딩이 활성화된 상태로 남아있을 수 있습니다.
이러한 상황에서는 외부 엔티티가 로드된 외부 XML 파일을 의도하지 않게 구문 분석하여 PHP에서 액세스할 수 있는 민감한 로컬 파일이 노출될 수 있습니다. 이 취약한 상태는 프로세스가 종료될 때까지 동일한 프로세스 내의 여러 요청에 걸쳐 지속될 수 있습니다.
PHAR 파일을 로드하는 동안 잠재적인 보안 문제가 발생할 수 있습니다. 특히 PHAR(PHP 아카이브) 디렉토리 항목을 읽을 때 부적절한 길이 유효성 검사로 인해 스택 버퍼 오버플로가 트리거될 수 있습니다. 이 오버플로는 메모리 손상을 초래하거나 원격 코드 실행(RCE) 공격을 가능하게 할 수 있습니다.
PHP 수명 주기 연장 지원
PHP를 포함한 모든 코드베이스에는 취약점이 있습니다. 따라서 웹사이트는 애플리케이션 공격과 익스플로잇 시도에 직면할 수 있습니다. 제조업체가 제품을 단종하면 현재 사용 중인 PHP 버전에 대한 지원도 중단됩니다. Tuxcare의 PHP 수명 주기 연장 지원은 공식 지원이 종료된 후에도 지속적인 보안 업데이트를 제공하여 빠른 해결책을 제공합니다.
TuxCare는 이미 CentOS 6, CentOS 8.4, CentOS 8.5, CloudLinux6, 오라클 리눅스 6, 우분투 16.04, 우분투 18.04 등 수명 주기 연장 지원 리눅스 배포판에 대해 위 취약점에 대한 보안 패치를 배포했습니다.
또한 PHP 확장 수명 주기 지원은 동일한 시스템에서 여러 PHP 버전을 나란히 운영할 수 있도록 하여 탁월한 유연성을 제공합니다. 이 기능을 사용하면 호환성 문제 없이 서로 다른 PHP 버전에서 실행되는 여러 웹사이트를 호스팅할 수 있습니다. 여기에서 자세히 알아보세요.
이 글의 출처는 LinuxSecurity의 기사입니다.