경영진 요약
저희 보안 연구팀은 다음과 같은 사실을 발견했습니다. CVE-2023-0568버퍼 할당 취약점은 공식적으로 PHP 8 이상 버전에만 영향을 미치는 것으로 보고되었지만, PHP 7 시리즈 설치(Windows 및 Linux)에도 영향을 미치는 것으로 나타났습니다. 이 발견은 특히 이 버전이 더 이상 공식 보안 업데이트를 받지 않는 지원 종료(EOL) 상태에 도달했기 때문에 운영 환경에서 여전히 PHP 7을 실행 중인 조직에 중대한 영향을 미칠 수 있습니다.
8.1 CVSS 3.x부터 NVD
7.5 CVSS 3.x부터 PHP 그룹
취약점 설명
CVE-2023-0568은 PHP의 핵심 경로 확인 함수에서 1바이트 버퍼 할당 오류입니다. 이 함수는 시스템의 MAXPATHLEN 설정에 근접하는 길이의 경로를 확인할 때 1바이트가 너무 작은 버퍼를 할당합니다. 이로 인해 할당된 버퍼 바로 다음 바이트가 NULL 값으로 덮어씌워집니다.
처음에는 사소한 문제로 보일 수 있지만, 이는 더 심각한 보안 문제를 나타냅니다:
- 이 취약점으로 인해 무단 데이터 액세스 또는 수정이 발생할 수 있습니다.
- 특정 조건에서는 서비스 거부(DoS)가 발생할 수 있습니다.
- 스택 덮어쓰기는 제한된 경우라도 더 복잡한 익스플로잇 체인을 위한 기회를 만들 수 있습니다.
PHP 7: 여전히 취약하지만 공식적으로 지원되지 않음
CVE-2023-0568에 대한 공식 권고에 따르면 영향을 받는다고 명시되어 있습니다:
- PHP 8.0x 8.0.28 앞
- PHP 8.1x 8.1.16 앞
- PHP 8.2x 8.2.3 앞
하지만 워드프레스닷컴 보안 연구팀은 PHP 7 시리즈 설치도 동일한 문제에 취약하다는 사실을 확인했습니다. 이로 인해 여전히 PHP 7을 실행하는 조직에는 상당한 보안 공백이 생깁니다:
- PHP 7이 EOL 상태에 도달했습니다.
- PHP 관리자가 제공하는 공식 패치는 없습니다.
- 이 취약점은 모든 PHP 7 설치에서 해결되지 않은 상태로 남아 있습니다.
기술 세부 정보
이 취약점은 PHP의 경로 확인 코드에 존재하며, 여러 위치에서 이 패턴을 따릅니다:
| // 최대 크기의 버퍼를 MAXPATHLEN으로 할당합니다. char resolved_path[MAXPATHLEN]; // 경로가 슬래시로 끝나지 않고 하나를 추가해야 하는 경우 // NUL 문자를 MAXPATHLEN 인덱스에 쓸 수 있습니다. // 1바이트 버퍼 오버플로우가 발생합니다. |
경로 길이가 최대 경로 길이에 가까워지면 코드에서 1바이트가 너무 작은 버퍼를 할당합니다. 경로가 슬래시로 끝나지 않고 슬래시를 추가해야 하는 경우 코드가 할당된 버퍼를 초과하여 스택 바이트를 덮어쓰게 됩니다.
고립된 1바이트 스택 덮어쓰기는 사소해 보일 수 있지만, 적절한 상황에서는 보안에 심각한 영향을 미칠 수 있습니다:
- 스택 데이터를 덮어쓰면 인접 변수가 손상될 수 있습니다.
- 잠재적으로 프로그램 제어 흐름에 영향을 미칠 수 있습니다.
- 다른 취약점과 결합하면 더 정교한 공격에 기여할 수 있습니다.
당사의 솔루션: PHP 7에 대한 무한 라이프사이클 지원
애플리케이션 호환성, 리소스 제약 또는 기타 비즈니스 요인으로 인해 PHP 7에서 최신 버전으로 마이그레이션하는 것이 항상 즉시 가능한 것은 아니라는 점을 잘 알고 있습니다. 이것이 바로 저희가 제공하는 이유입니다:
- 맞춤형 보안 패치: CVE-2023-0568 및 기타 알려진 취약점을 해결하는 PHP 7용 패치를 개발했습니다.
- PHP 7 패키지 업데이트: Windows 및 Linux 환경에서 모두 사용 가능
- 지속적인 보안 지원: PHP 7에서 새로 발견된 취약점에 대한 지속적인 모니터링 및 패치 제공
권장 조치
조직에서 아직 PHP 7을 실행 중인 경우 이를 권장합니다:
- 노출 평가: 애플리케이션이 이 취약점을 유발할 수 있는 경로 조작에 취약한지 평가합니다.
- 패치된 패키지 적용: 보안 패치가 적용된 PHP 7 패키지를 설치하여 이 취약점을 완화하세요.
결론
보안 취약점은 지원 종료(EOL) 시점을 가리지 않습니다. CVE-2023-0568은 보안 문제가 공식 지원 주기가 끝난 후에도 소프트웨어에 어떤 영향을 미칠 수 있는지 보여주는 대표적인 사례입니다. 당사의 PHP 7 연장 지원 서비스와 2027년 말 예정된 PHP 8.3 지원 종료와 같은 향후 일정에 대비한 서비스는, 조직이 자체 일정에 맞춰 마이그레이션 전략을 수립하는 동안 필요한 보안 패치를 제공합니다.
