php-src 스트림 래퍼 논리 결함으로 원격 코드 실행 및 서비스 중단 발생
공격자는 stream_wrapper_unregister와 opendir 사이의 경쟁 조건 또는 논리 오류를 악용해 스트림 래퍼 객체가 파괴된 뒤에도 해당 메모리에 접근하게 만들어 힙 use-after-free를 유발할 수 있습니다. 원격 미인증 사용자가 악성 HTTP 요청으로 메모리 손상을 일으켜 서비스 프로세스 충돌(서비스 거부)이나, 특정 조건에서 임의 코드 실행으로 이어질 수 있습니다.
컴포넌트
php-src는 PHP 인터프리터의 핵심 소스 저장소입니다. Zend 엔진으로 PHP를 파싱·실행하고, 파일시스템·네트워크 프로토콜 등 다양한 I/O를 추상화하는 강력한 스트림 계층을 갖춰 웹 애플리케이션에 고성능 스크립트 실행 환경을 제공합니다.
유형
Use After Free (CWE-416)
저장소
대응 방안
- 이러한 결함 수정에는 객체 수명 주기의 엄격한 관리가 필요하며, 포인터가 댕글링되기 전에 모든 참조를 정리하고 중요 경로에 이중 검사 잠금을 적용해 동시성 하 자원 경쟁을 막아야 합니다.
php-src ODBC 연결 문자열 파싱 결함으로 인젝션이 발생해 데이터 유출과 무결성 훼손 가능
결함은 연결 문자열 따옴표 완전성을 검증하는 php_odbc_connstr_is_quoted에 있습니다. 중괄호로 시작하는 문자열에 이스케이프되지 않은 닫는 괄호가 있는지만 확인하고 유효한 닫는 괄호의 존재를 강제하지 않습니다. 공격자는 `{`로 시작하고 닫는 괄호가 없는 악성 사용자명·비밀번호를 넣어 안전하게 인용된 것으로 오판하게 한 뒤 후속 이스케이프를 우회하고, 원본 악성 페이로드를 ODBC 연결 문자열에 직접 이어 붙일 수 있습니다. 드라이버 관리자가 엄격 검증을 하지 않으면 연결 매개변수가 변조되어 민감 정보 유출이나 서비스 중단으로 이어질 수 있습니다.
컴포넌트
php-src는 PHP 핵심 소스 저장소입니다. ODBC 확장은 하위 ODBC 드라이버 인터페이스를 캡슐화해 데이터 소스 연결 관리·쿼리 실행·결과 집합 처리를 제공하며, 엔터프라이즈 웹 앱의 데이터 영속 계층을 지탱하는 핵심 인프라로서 애플리케이션과 백엔드 저장소 간 효율적이고 안정적인 상호작용을 담당합니다.
유형
Injection (CWE-74)
저장소
대응 방안
- 닫는 괄호의 존재를 추적·확인하도록 로직을 수정하고, 형식이 완전한 문자열만 인용된 것으로 간주하세요. 동시에 애플리케이션 계층에서 입력에 대한 엄격한 필터와 화이트리스트 검증을 적용해 단일 경계 검사에 의존하지 말고 인젝션 위험을 근본적으로 제거하세요.