🇰🇷 한글 설명
Sequelize Node.js ORM의 6.37.8 이전 버전에서 JSON/JSONB WHERE 절 처리 중 SQL 인젝션 취약점이 발견되었습니다. _traverseJSON() 함수가 JSON 경로 키를 분리할 때 cast type을 검증 없이 SQL 문에 직접 삽입하여 발생합니다. 공격자가 JSON 객체 키를 제어할 수 있다면 임의의 SQL을 실행하고 데이터를 탈취할 수 있습니다.
💡 쉬운 설명
데이터베이스를 다루는 도구인 Sequelize에서 특정 데이터를 처리할 때 보안 검사가 누락된 부분이 발견되었습니다. 해커가 특수하게 조작된 데이터를 보내면 데이터베이스의 모든 정보를 몰래 빼낼 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
Sequelize is a Node.js ORM tool. Prior to 6.37.8, there is SQL injection via unescaped cast type in JSON/JSONB where clause processing. The _traverseJSON() function splits JSON path keys on :: to extract a cast type, which is interpolated raw into CAST(... AS <type>) SQL. An attacker who controls JSON object keys can inject arbitrary SQL and exfiltrate data from any table. This vulnerability is fixed in 6.37.8.
📍 영향받는 시스템
Sequelize Node.js ORM 6.37.8 미만 버전
⚔️ 공격 벡터
JSON 객체의 키(Key) 값을 조작하여 SQL 구문을 삽입하는 방식
🛡️ 대응 방법
Sequelize를 최신 버전인 6.37.8 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Sequelize의 버전이 6.37.8보다 낮은지 확인하십시오.
npm list sequelize | grep sequelize