🔍 CVE-2026-58654

4.3
CVSS Score
MEDIUM
2026-07-08
2026-07-08 18:16
✅ 완료

🇰🇷 한글 설명

Grav API 플러그인 1.0.0 버전의 아바타 업로드 엔드포인트에서 제한 없는 파일 업로드 취약점이 발견되었습니다. 이 취약점은 파일의 실제 내용이나 확장자를 검증하지 않고 클라이언트가 선언한 MIME 타입만 확인하므로, 공격자가 PHP 코드나 악성 스크립트가 포함된 파일을 서버에 저장할 수 있습니다. 이는 서버 설정 오류와 결합될 경우 원격 코드 실행(RCE)이나 저장형 XSS로 이어질 수 있습니다.

💡 쉬운 설명

사용자 프로필 사진을 올리는 기능에서 파일의 진짜 정체를 확인하지 않는 허점이 있습니다. 이를 통해 해커가 사진 대신 악성 프로그램을 몰래 올려 서버를 공격할 수 있습니다.

🇺🇸 원문 (English)

The Grav API plugin (getgrav/grav-plugin-api) 1.0.0 contains an unrestricted file upload vulnerability in the avatar upload endpoint (/api/v1/users/user/avatar). The endpoint validates only the client-declared MIME type (getClientMediaType) beginning with 'image/' and does not inspect the actual file content or restrict the resulting extension, allowing an authenticated user to store arbitrary content — including PHP code, SVG with embedded JavaScript, and polyglot payloads — under user/accounts/avatars/ with predictable filenames. Direct HTTP access to the stored files is blocked by .htaccess (returns 403), but the files persist on disk and could lead to remote code execution or stored XSS in the presence of a path traversal flaw or server misconfiguration. Fixed in 1.0.1.

📍 영향받는 시스템

getgrav/grav-plugin-api 1.0.0 이하 버전

⚔️ 공격 벡터

인증된 사용자가 아바타 업로드 API를 통해 악성 파일(PHP, SVG 등)을 업로드

🛡️ 대응 방법

Grav API 플러그인을 최신 버전인 1.0.1 이상으로 업데이트

🔧 검증 코드

명령어 결과에 '1.0.0' 버전이 나타나면 해당 취약점에 노출된 상태입니다.

Shell / Script
grep -r "getgrav/grav-plugin-api" /path/to/grav/plugins | grep -E "1\.0\.0"

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

💻 영향받는 소프트웨어

PHP