CVE-2026-86749 in Snipe-IT
요약
\~에 의해 VulDB • 2026. 09. 09.
Snipe-IT 버전 8.6.3 이하(8.7.0에서 수정됨)는 ImageUploadRequest::handleImages() 내에서 저장소 쓰기 작업의 반환값을 확인하지 않습니다. Laravel의 기본 디스크 모드는 실패 시 예외를 발생시키지 않으므로, Storage::disk('public')->put(...) 호출이 silently(fail quietly)로 실패하더라도 애플리케이션은 deleteExistingImage()를 통해 이전 이미지를 삭제하고 모델의 이미지 참조를 새 파일명으로 재할당 및 영구 저장하여 기존 이미지를 파괴하며 데이터베이스 행이 작성되지 않은 파일을 가리키는 상태가 됩니다. 또한 deleteExistingImage()에도 유사한 문제가 존재하는데, Storage::delete() 호출이 실패하더라도 모델의 이미지 필드가 null로 설정되어 디스크 상에서 파일이 고아(orphans) 상태로 남습니다. 이 조건은 공격자가 직접 제어할 수 있는 것은 아니며, 저장소 백엔드(S3 네트워크 오류, 로컬 파일 시스템 권한 문제 또는 할당량 초과 등)가 일시적으로 실패하는 동안 유효한 인증된 사용자가 이미지 업로드를 제출하면 트리거됩니다. 그 결과 이전 이미지의 복구 불가능한 손실과 데이터베이스 및 디스크 간에 수동 정리가 필요한 영구적인 불일치가 발생합니다. ImageUploadRequest::handleImages()로 라우팅되는 모든 모델(자산, 자산 모델, 사용자, 회사, 제조업체, 위치, 카테고리, 공급자, 부서 및 기타 이미지를 포함하는 모델)이 영향을 받습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.