🇰🇷 한글 설명
Payload CMS의 특정 버전에서 JSON 또는 blocksAsJSON이 활성화된 blocks 필드를 포함하는 컬렉션에 SQL 인젝션 취약점이 존재합니다. 공격자가 조작된 필드 경로와 연산자를 사용하여 데이터베이스에 악의적인 SQL 쿼리를 주입할 수 있습니다.
💡 쉬운 설명
데이터를 저장하는 특정 칸에 특수한 명령어를 몰래 끼워 넣어 데이터베이스를 조작할 수 있는 보안 약점입니다. 권한이 있는 사용자가 잘못된 값을 입력하면 시스템의 중요한 정보가 유출되거나 변경될 수 있습니다.
🇺🇸 원문 (English)
Payload is a free and open source headless content management system. Prior to 3.90.0 and 4.0.0-canary.34, an attacker with read and create or update access to a collection containing a json field or a blocks field with blocksAsJSON enabled can inject SQL through a crafted field path and operators. Collections without those fields are not affected, and richText fields are not affected. The SQLite packages are fixed in versions 3.90.0 and 4.0.0-canary.34, and the Postgres packages are fixed in version 3.73.0.
📍 영향받는 시스템
Payload CMS 3.90.0 및 4.0.0-canary.34 미만 버전, Postgres 사용 시 3.73.0 미만 버전
⚔️ 공격 벡터
JSON 또는 blocks 필드가 포함된 컬렉션에 조작된 필드 경로와 연산자를 삽입하여 공격
🛡️ 대응 방법
Payload CMS를 3.90.0 또는 4.0.0-canary.34 이상으로 업데이트하고, Postgres 사용 시 3.73.0 이상 버전으로 업데이트
🔧 검증 코드
출력된 payload의 버전이 취약한 버전 범위(3.90.0 미만 또는 4.0.0-canary.34 미만)에 해당하는지 확인
npm list payload --depth=0 | grep payload