🇰🇷 한글 설명
PHP 7.1.4 이하의 GNU GMP 인터페이스에서 공격자가 긴 문자열에 대한 GMP 연산을 수행하여 과도한 메모리 소비와 애플리케이션 크래시를 유발할 수 있습니다. 이는 메모리 할당 제약이 없는 환경에서 DoS 공격 벡터로 악용될 수 있습니다.
💡 쉬운 설명
PHP에서 매우 큰 숫자 연산을 처리할 때, 공격자가 의도적으로 큰 데이터를 보내서 프로그램이 메모리를 과도하게 사용하도록 만들 수 있습니다. 그 결과 애플리케이션이 충돌하게 됩니다.
🇺🇸 원문 (English)
The GNU Multiple Precision Arithmetic Library (GMP) interfaces for PHP through 7.1.4 allow attackers to cause a denial of service (memory consumption and application crash) via operations on long strings. NOTE: the vendor disputes this, stating "There is no security issue here, because GMP safely aborts in case of an OOM condition. The only attack vector here is denial of service. However, if you allow attacker-controlled, unbounded allocations you have a DoS vector regardless of GMP's OOM behavior.
📍 영향받는 시스템
PHP GMP 확장 7.1.4 이하 (PHP 5.0.0 이상, 7.x 버전 포함)
⚔️ 공격 벡터
긴 문자열을 포함한 특별히 구성된 입력값을 GMP 함수(gmp_add, gmp_mul 등)에 전달하여 메모리 고갈 유발
🛡️ 대응 방법
PHP를 최신 버전으로 업그레이드하고, 사용자 입력 크기에 제한을 두거나 메모리 할당 제약을 설정
🔧 검증 코드
gmp 확장이 로드되었다면 설치 확인, PHP 버전이 7.1.4 이하면 취약
php -m 2>/dev/null | grep -i gmp && php -v 2>/dev/null | grep 'PHP'