CodeIgniter는 PHP 풀스택 웹 프레임워크입니다. 4.7.3 이전에는 system/Validation/StrictRules/FileRules.php의 ext_in 업로드 유효성 검사 규칙이 클라이언트가 제공한 파일 이름 확장자 대신 MIME 파생 추측 확장자를 확인했습니다. 결과적으로 GIF와 유사한 콘텐츠가 포함된 shell.php라는 이름의 업로드된 파일은 업로드된 파일 이름이 e인 경우에도 감지된 MIME 유형이 gif에 매핑되므로 Upload[avatar]|is_image[avatar]|mime_in[avatar,image/gif]|ext_in[avatar,gif]와 같은 유효성 검사를 통과할 수 있습니다.
CodeIgniter는 PHP 풀스택 웹 프레임워크입니다. 4.7.3 이전에는 system/Validation/StrictRules/FileRules.php의 ext_in 업로드 유효성 검사 규칙이 클라이언트가 제공한 파일 이름 확장자 대신 MIME 파생 추측 확장자를 확인했습니다. 결과적으로 업로드된 파일 이름 확장자가 php인 경우에도 감지된 MIME 유형이 gif에 매핑되기 때문에 GIF와 유사한 콘텐츠가 포함된 shell.php라는 이름의 업로드된 파일은 Uploaded[avatar]|is_image[avatar]|mime_in[avatar,image/gif]|ext_in[avatar,gif]와 같은 유효성 검사를 통과할 수 있습니다. 애플리케이션이 사용자 제어 업로드를 허용하고, ext_in을 사용하여 업로드된 파일 이름 확장자의 유효성을 검사하고, $file->move($path)를 사용하여 원래 클라이언트 파일 이름을 사용하여 업로드된 파일을 저장하고, 웹 액세스 가능한 디렉터리에 업로드를 저장하고, PHP 또는 기타 실행 파일이 해당 디렉터리에서 실행되도록 허용하는 경우 영향을 받습니다. 이러한 조건에서는 임의 코드가 실행될 수 있습니다. 이 문제는 버전 4.7.3에서 해결되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준