알려진 취약점이 있는 라이브러리·프레임워크를 사용하는 경우입니다. 패치 없이 방치된 컴포넌트는 공격자에게 쉬운 진입점이 됩니다.
// 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'] });