위험도 (Severity) 개수 예시
🔴 Critical 19개 Flash loan 재진입 (DeFi Saver), commit 덮어쓰기 (Fei), 주문 취소 무효 (MCDEX) 등
🟠 High 42개 불충분한 입력검증, 프론트런, 관리 권한 오남용, 잘못된 수학 계산 등
🟡 Medium 38개 unchecked return, 잘못된 decimals, ERC20 비표준, 초기화 누락 등
🔵 Low / Informational 2개 문서 불일치, 이벤트 누락 등

1. transfer()와 transferFrom()의 반환값 무시

// X 취약한 코드 예시
token.transfer(user, amount); // 반환값 확인 안함
token.transferFrom(user, address(this), amount); // 실패해도 계속 실행

// V 안전한 코드
require(token.transfer(user, amount), "Trnasfer failed");
require(token.transferFrom(user, address(this), amount), "TransferFrom failed");

// 또는 SafeERC20 사용
using SafeERC20 for IERC20;
token.safeTransfer(user, amount)
token.safeTransferFrom(user, address(this), amount);

2. Flash Loan 실행 중 재진입 가능