| 위치 | 규칙 | 유형 | 심각도 |
|---|---|---|---|
app/db.py:42 |
formatted-sql-query | SQL 인젝션 (CWE-89) | High |
app/worker.py:88 |
dangerous-subprocess-use | 명령 주입 (CWE-78) | Critical |
app/util.py:15 |
insecure-hash-algorithm-md5 | 취약한 해시 (CWE-327) | Medium |
우선순위 — Critical 1건을 먼저 처리한 뒤 High, Medium 순으로 진행합니다.
| 순위 | 문제 | 수정 방향 |
|---|---|---|
| 1 | worker.py:88 명령 주입 (Critical) |
shell=True를 제거하고 인자를 리스트로 전달, 사용자
입력은 화이트리스트 검증
|
| 2 | db.py:42 SQL 인젝션 (High) |
문자열 포매팅 대신 파라미터 바인딩(cursor.execute(sql, params)) 사용
|
| 3 | util.py:15 취약한 해시 (Medium) |
MD5를 SHA-256 이상으로 교체, 비밀번호는 bcrypt·argon2 사용 |
위 결과는 샘플 스캔 기준 예시입니다. 실제 결과는 아래 도구에서 본인 Semgrep·CodeQL 출력 파일을 업로드해 확인하세요.