🇰🇷 한글 설명
Backpack/CRUD 패키지의 Stats::makeCurlRequest 함수에서 HTTP Host 헤더를 적절한 검증 없이 exec() 함수로 전달하여 발생하는 명령 주입 취약점입니다. 공격자가 조작된 Host 헤더를 통해 웹 서버 권한으로 운영체제 명령을 실행할 수 있으며, 이는 환경 변수 유출이나 서비스 중단으로 이어질 수 있습니다.
💡 쉬운 설명
웹사이트의 주소를 알려주는 정보(Host 헤더)를 악용하여 해커가 서버에 몰래 명령을 내릴 수 있는 보안 구멍입니다. 해커가 이 구멍을 통해 서버의 중요한 파일을 훔치거나 시스템을 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
backpack/crud provides Create, Read, Update & Delete (CRUD) functions for Backpack, a collection of Laravel packages that help users build custom administration panels. Prior to 4.1.70, 5.6.2, 6.8.13, and 7.0.36, Backpack\CRUD\Stats::makeCurlRequest in src/Stats.php is reached from BackpackServiceProvider::boot() and constructs a shell command with a URL influenced by the HTTP Host header, which it passes to exec() without adequate shell neutralization. An unauthenticated attacker whose malformed Host value reaches PHP can inject operating-system commands when exec() and curl are available and the 1-in-100 random gate is reached. Repeated requests can reach the random gate. Successful exploitation executes commands as the web-server user, exposing environment secrets, files, and reachable services and permitting data modification or service disruption. Common reverse-proxy Host validation and hardened PHP configurations that disable exec() reduce reachability but do not correct the vulnerable construction. This issue is fixed in versions 4.1.70, 5.6.2, 6.8.13, and 7.0.36.
📍 영향받는 시스템
Backpack/CRUD versions prior to 4.1.70, 5.6.2, 6.8.13, and 7.0.36
⚔️ 공격 벡터
조작된 HTTP Host 헤더를 이용한 원격 명령 주입 (RCE)
🛡️ 대응 방법
Backpack/CRUD를 최신 보안 패치 버전(4.1.70, 5.6.2, 6.8.13, 7.0.36 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약점이 해결된 버전(4.1.70, 5.6.2, 6.8.13, 7.0.36 중 하나 이상)인지 확인하십시오.
composer show backpack/crud | grep versions