⚠️ 훈련용 취약 웹사이트 — 실제 거래소가 아닙니다
취약점 목록 A06
A06

Vulnerable & Outdated Components

CVSS Score
7.5
high

알려진 취약점이 있는 라이브러리·프레임워크를 사용하는 경우입니다. 패치 없이 방치된 컴포넌트는 공격자에게 쉬운 진입점이 됩니다.

💥 공격 시 영향

  • jsonwebtoken 8.5.1 (CVE-2022-23529): JWT 검증 우회
  • multer path traversal 가능
  • 공급망 공격(Supply Chain Attack) 위험

🎯 이 사이트에서 실습하기

취약 컴포넌트 확인
CVE 목록이 포함된 패키지 버전 확인
실습 페이지 →

💻 취약 코드 vs 안전한 코드

❌ 취약한 코드
// package.json - 취약한 버전 사용
{
  "jsonwebtoken": "^8.5.1", // CVE-2022-23529
  "multer": "^1.4.5-lts.1"  // Path Traversal 가능
}

// CVE-2022-23529: secretOrPublicKey가 falsy면 검증 스킵
jwt.verify(token, ''); // 빈 시크릿으로도 검증 통과
✅ 안전한 코드
// ✅ 안전: 최신 버전 + 버전 고정
{
  "jsonwebtoken": "9.0.2",   // 취약점 패치됨
  "multer": "1.4.5-lts.1"   // + 업로드 경로 검증 추가
}

// 시크릿 존재 여부 명시적 확인
if (!process.env.JWT_SECRET) throw new Error('JWT_SECRET 미설정');
jwt.verify(token, process.env.JWT_SECRET, { algorithms: ['HS256'] });

🛡️ 대응 방안

📚 참고 자료

OWASP A06:2021 CVE-2022-23529 (jsonwebtoken) NVD National Vulnerability Database