
Frappe Framework v15.72.4의 frappe.client.get_value API 엔드포인트에서 fieldname 매개변수를 통해 SQL 인젝션 취약점이 발견되었습니다.
📌 요약
Frappe Framework v15.72.4의 frappe.client.get_value API 엔드포인트에서 시간 기반 블라인드 SQL 인젝션 취약점이 발견되었습니다(ERPNext v15.67.0 코드베이스에도 존재). 보고/클라이언트 API에 접근할 수 있는 인증된 사용자는 fieldname 매개변수를 통해 SQL을 주입할 수 있습니다. fieldname 매개변수에 sleep(15)과 같은 시간 지연 함수를 삽입하면 측정 가능한 응답 지연을 통해 인젝션을 확인할 수 있으며, 이를 통해 서비스 거부(DoS), 정보 공개(블라인드 기법), 데이터 조작이 가능합니다.
취약점 유형: SQL 인젝션 (시간 기반 블라인드) (CWE‑89)
영향을 받는 제품: Frappe Framework / ERPNext
영향을 받는 버전(보고 기준):
영향을 받는 구성 요소: frappe.client.get_value API 메서드 (frappe/client.py)
취약한 엔드포인트:
/api/method/frappe.client.get_value
취약한 쿼리 예시:
/api/method/frappe.client.get_value?doctype=Report&fieldname=ref_doctype+%2F+sleep(15)+&filters=Profit+and+Loss+Statement&_=1752174156893
취약한 매개변수: fieldname (제대로 검증되지 않고 SQL에 직접 연결됨)
공격 유형: 원격 (인증 및 보고 API 접근 권한 필요)
심각도: 높음 (시간 기반 블라인드 SQLi로 데이터 유출, DoS, 조작 가능)
예상 CVSS v3.1 점수: 8.0 (높음) — 데이터 공개와 DoS를 가능하게 하는 인증 필요 원격 SQL 인젝션에 기반한 추정치이며, 공식 점수는 CVE 담당 기관이 산정해야 합니다.
상태: 수정되지 않음 (보고 기준)
발견자: Mohammed Aloli (GitHub: https://github.com/MoAlali)
발견 날짜: 보고서에 명시되지 않음
CVE ID: CVE-2025-56380
승인된 환경 / 랩 환경에서만 테스트하십시오. 소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템에 대해서는 실행하지 마십시오.
PoC 요청 (예시):

GET /api/method/frappe.client.get_value?doctype=Report&fieldname=ref_doctype+%2F+sleep(15)+&filters=Profit+and+Loss+Statement&_=1752174156893
확인 절차
+%2F+sleep(15)+& 페이로드를 제거하고 응답이 즉시 반환되는지 관찰합니다. 이를 통해 인젝션이 시간 지연을 유발함을 확인합니다.참고 사항: 백엔드 DB 엔진에 따라 sleep(15)을 다른 시간 함수나 시간 값(예: PostgreSQL의 pg_sleep(n))으로 바꾸십시오. 이 PoC는 타이밍을 통한 블라인드 인젝션을 시연합니다. 더 복잡한 페이로드를 사용하여 데이터를 비트 단위로 추출할 수도 있습니다.
공격 경로: 인증된 사용자가 SQL 페이로드(시간 지연 함수)를 포함한 악의적인 fieldname 매개변수를 사용하여 /api/method/frappe.client.get_value에 GET 요청을 구성합니다.
영향:
fieldname 및 모든 사용자 입력이 SQL에 직접 연결되지 않도록 하십시오. 매개변수를 올바르게 바인딩하는 매개변수화된 쿼리 또는 ORM API를 사용하십시오.sleep, pg_sleep, benchmark, /, ;)를 모니터링하십시오.frappe.client.get_value 및 fieldname/필터를 처리하는 코드 경로를 감사하고, 안전하지 않은 연결(concatenation)을 안전한 API로 교체한 후 보안 패치를 릴리스해야 합니다. 운영자는 신속하게 업데이트를 적용해야 합니다.https://github.com/MoAlali — X: https://x.com/alaliksa_ — LinkedIn: https://www.linkedin.com/in/mohammedaloli/https://github.com/frappe/frappe , https://github.com/frappe/erpnexthttps://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.htmlMohammed Aloli에 의해 발견됨
이 정보는 방어 및 수정 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 이 취약점을 악용하려 시도하지 마십시오. 운영자는 패치 적용을 최우선으로 하고, 안전한 코딩 수정을 적용하며, 위의 완화 지침을 따라야 합니다.