🇰🇷 한글 설명
Wheels 1.1.8부터 4.1.1 버전에서 동적 파인더 및 쿼리 빌더 사용 시 SQL 인젝션 취약점이 발생합니다. 파서가 연속된 작은따옴표를 리터럴의 끝으로 잘못 처리하여, 사용자 입력값이 SQL 쿼리에 직접 영향을 줄 수 있습니다. 이로 인해 인증 정보나 토큰 등 민감한 데이터가 유출될 위험이 있습니다.
💡 쉬운 설명
프로그램이 사용자가 입력한 글자를 데이터로만 보지 않고 잘못된 명령어로 오해하여 데이터베이스를 조작할 수 있는 문제입니다. 해커가 이 점을 이용하면 로그인 정보나 개인정보를 몰래 빼낼 수 있습니다.
🇺🇸 원문 (English)
Wheels 1.1.8 through 4.1.1 allows SQL injection when caller-supplied quoted values are parsed again as SQL by dynamic finders (such as findOneByEmail), the query builder's where(property, value) and where(property, operator, value), string/UUID-key lookup paths (findByKey, updateByKey, deleteByKey and findOrCreateBy...), and validatesUniquenessOf. The parser incorrectly treats a doubled single quote as the end of a literal. Applications passing request data to these APIs can expose authentication, password-reset or token lookups, and data to unauthorized access; numeric-column values are not affected. There is a similar concern for query-builder whereBetween() in 4.0.0 through 4.1.1: string/date bounds can alter SQL on MySQL/MariaDB with backslash escaping enabled. This is fixed in 4.1.2.
📍 영향받는 시스템
Wheels 1.1.8 ~ 4.1.1
⚔️ 공격 벡터
사용자 입력값이 포함된 따옴표를 이용해 SQL 쿼리 구조를 조작하는 방식
🛡️ 대응 방법
Wheels 버전을 4.1.2 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위가 나타나면 해당 시스템은 보안 업데이트가 필요합니다.
npm list wheels | grep -E 'wheels@([1-4]\.[0-4]\.[0-9]|4\.1\.[0-1])'