🇰🇷 한글 설명
Frappe의 ERPNext 및 Frappe 특정 버전에서 발생하는 SQL 인젝션 취약점입니다. 공급업체(Supplier) 레코드의 이름(docname)에 SQL 메타문자를 포함할 경우, 매개변수화된 쿼리를 사용하지 않고 문자열 포맷팅을 통해 쿼리를 생성하여 임의의 SQL 명령이 실행될 수 있습니다. 이를 통해 권한이 낮은 인증된 사용자가 데이터베이스의 기밀 정보나 관리자 비밀번호 해시를 탈취할 수 있습니다.
💡 쉬운 설명
공격자가 특수하게 조작된 이름을 입력하면 시스템이 이를 명령어로 오해하여 데이터베이스를 마음대로 조작할 수 있는 문제입니다. 이를 통해 개인정보나 중요한 비밀번호를 몰래 빼낼 수 있습니다.
🇺🇸 원문 (English)
SQL injection in Frappe's ERPNext, versions ERPNext 15.107.0 and Frappe 15.107.2. The application constructs SQL queries through direct string interpolation using `str.format()` without employing parameterized queries, allowing the name (docname) of a Supplier record containing SQL metacharacters to be interpreted as part of the query. Exploitation of this vulnerability could allow an authenticated user with low privileges to execute arbitrary SQL queries, bypass Frappe’s access restrictions (DocPerm), extract confidential information from the database—including fragments of the administrator’s password hash—and access other sensitive data, such as credentials, integration tokens, or financial information.
📍 영향받는 시스템
ERPNext 15.107.0 및 Frappe 15.107.2
⚔️ 공격 벡터
공급업체(Supplier) 레코드의 docname 필드에 SQL 메타문자를 삽입하여 쿼리 실행
🛡️ 대응 방법
매개변수화된 쿼리(Parameterized Queries)를 사용하도록 코드를 수정하고 최신 보안 패치를 적용하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전(Frappe 15.107.2 이하 또는 ERPNext 15.107.0 이하)인지 확인합니다.
pip show frappe erpnext | grep -E 'Version:'