🇰🇷 한글 설명
Node.js ORM 도구인 Sequelize의 6.19.1 미만 버전에서 replacements 기능을 사용할 때 SQL 인젝션 취약점이 존재합니다. replacements를 통해 전달되는 파라미터가 적절히 이스케이프되지 않아, 특정 쿼리 사용 시 임의의 SQL 인젝션 공격이 가능합니다.
💡 쉬운 설명
데이터베이스를 다루는 도구의 실수로 인해 해커가 데이터베이스에 몰래 명령어를 입력할 수 있는 보안 구멍이 발견되었습니다. 이를 통해 중요한 정보를 훔치거나 데이터를 조작할 위험이 있습니다.
🇺🇸 원문 (English)
Sequelize is a Node.js ORM tool. In versions prior to 6.19.1 a SQL injection exploit exists related to replacements. Parameters which are passed through replacements are not properly escaped which can lead to arbitrary SQL injection depending on the specific queries in use. The issue has been fixed in Sequelize 6.19.1. Users are advised to upgrade. Users unable to upgrade should not use the `replacements` and the `where` option in the same query.
📍 영향받는 시스템
Sequelize versions prior to 6.19.1
⚔️ 공격 벡터
replacements와 where 옵션을 동시에 사용하는 쿼리에 조작된 파라미터를 전달하여 SQL 인젝션 수행
🛡️ 대응 방법
Sequelize를 6.19.1 버전 이상으로 업그레이드하거나, 업그레이드가 불가능할 경우 동일 쿼리 내에서 replacements와 where 옵션 사용을 금지함
🔧 검증 코드
출력된 Sequelize의 버전이 6.19.1 미만인지 확인합니다.
npm list sequelize | grep sequelize