- 현우
","language":"javascript"},"rv":2,"parentBlockId":"_root_","sortKey":".o0rr","rt":3},"01kg540zmsr0gcvgqtpwzyshsf":{"id":"01kg540zmsr0gcvgqtpwzyshsf","type":"image","version":3,"value":{"image":{"id":"4dre2n","imageKey":"image/slashpagePost/20260129/235525_BLDRy2deRS3yNrllmh","path":"https://upload.cafenono.com/image/slashpagePost/20260129/235525_BLDRy2deRS3yNrllmh?q=80&s=1280x180&t=outside&f=webp","originalImageSize":{"width":1773,"height":368},"dominantColor":"#25242b","isAnimated":false,"mimeType":"image/png","originalContentLength":35435,"updatedAt":"2026-01-29T14:55:26.000Z","createdAt":"2026-01-29T14:55:25.000Z","domain":{"id":"d3mqew"},"previewHash":"U24_trxvs.t7.Af6RiR%%OfQRiR%-=ogWAWB","page":{"id":"1q3vdn2pxr5x42xy49pr"},"hasTransparentPixels":false,"filename":"image-2026-1-29_18-14-13.png"},"extra":{"isRepresentative":true},"shapeConfigurable":true},"rv":4,"parentBlockId":"_root_","sortKey":".o0u","rt":1},"01kg540zmv1dwdt5w6w35fdd86":{"id":"01kg540zmv1dwdt5w6w35fdd86","type":"text","version":1,"value":{"tokens":[{"text":"데이터를 정상적으로 저장했다면, 데이터 로드는 아래와 같이 컴포저블의 일부 함수를 호출해 바로 불러와줄 수 있다."}]},"rv":3,"parentBlockId":"_root_","sortKey":".o0v","rt":1},"01kg541bgdv9662d2fs2q32n5p":{"id":"01kg541bgdv9662d2fs2q32n5p","type":"code","version":1,"value":{"code":"// Form.vue (로드)\n\n
Tier | Description |
Critical | Highest severity; requires immediate action as it can be easily exploited, often remotely. (최고 심각도; 즉각적인 조치가 필요하며 원격으로 쉽게 악용될 수 있음) • 가장 위험한 취약점을 의미한다. • 즉시 수정 조치를 필요로 한다. • 원격 공격에 노출될 수 있다. |
High | Very serious; should be addressed as quickly as possible. (매우 심각함; 가능한 한 빨리 해결해야 함) • 심각한 보안 취약점을 의미한다. • 최우선적으로 수정 조치를 필요로 한다. • 빠른 시일 내 패치를 권장한다. |
Moderate | Can become risky under specific conditions; address as time allows. (특정 조건에서 위험해질 수 있음; 시간이 허락하는대로 해결) • 중간 수준의 위험을 의미한다. • 특정 상황에서 보안 문제가 발생할 수 있다. • High 보다는 우선순위가 낮지만, 그래도 처리를 권장한다. |
Low | Minor issues, potentially harmless edge cases; address at your discretion. (경미한 문제, 잠재적으로 무해한 엣지 케이스; 재량에 따라 해결) • 사소한 취약점을 의미한다. • 실제 피해 가능성이 낮으며, 필요 때에 처리를 권장한다. |
npm audit --json
// 혹여나 json 파일로 추출해서 확인을 하고 싶다면, 아래 명령어를 사용하면 된다.
npm audit --json > audit.json "micromatch": {
"name": "micromatch", // 취약점이 발견된 패키지 이름
"severity": "high", // 전체 심각도: 높음 (매우 심각)
"isDirect": false, // 직접 설치한 패키지가 아님 (간접 의존성)
"via": [ // 취약점 상세 정보
{
"source": 1098681, // Github Advisory Database Id
"name": "micromatch", // 취약점 패키지
"dependency": "micromatch", // 의존성 이름
"title": "Regular Expression Denial of Service (ReDoS) in micromatch", // 제목 : micromatch에서 정규 표현식 서비스 거부 공격 취약점
"url": "https://github.com/advisories/GHSA-952p-6rrq-rcjv", // 취약점 상세 정보 URL (Github Security Advisory)
"severity": "moderate", // 이 취약점 자체의 심각도: 보통
"cwe": [
"CWE-1333" // CWE 분류: 비효율적인 정규표현식 복잡도
],
"cvss": {
"score": 5.3, // CVSS 점수 (0-10, 높을수록 위험)
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" // CVSS 벡터 스트링
},
"range": "<4.0.8" // 취약한 버전 범위: 4.0.8 미만
},
"braces" // braces 패키지가 micromatch를 의존함
],
"effects": [ // 영향받는 패키지
"jscodeshift" // jscodeshift가 이 취약점에 영향받음
],
"range": "<=4.0.7", // 취약한 버전 범위: 4.0.7 이하
"nodes": [
"node_modules/jscodeshift/node_modules/micromatch" // 실제 설치된 위치
],
"fixAvailable": false // 자동 수정 불가능
},CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
AV:N (Attack Vector: Network)
→ 네트워크를 통한 원격 공격 가능
AC:L (Attack Complexity: Low)
→ 공격 복잡도 낮음 (쉽게 공격 가능)
PR:N (Privileges Required: None)
→ 권한 불필요 (누구나 공격 가능)
UI:N (User Interaction: None)
→ 사용자 상호작용 불필요 (자동 공격 가능)
S:U (Scope: Unchanged)
→ 영향 범위가 취약한 컴포넌트에 한정
C:N (Confidentiality: None)
→ 기밀성 영향 없음 (데이터 유출 없음)
I:N (Integrity: None)
→ 무결성 영향 없음 (데이터 변조 없음)
A:L (Availability: Low)
→ 가용성에 낮은 영향 (서비스가 느려지거나 일시적 중단)
{}.isAdmin === true// 아래와 같이 자동으로 수정할 수 있는 경우에는 fixAvailable 란에 버젼과 이름이 노출된다.
"fixAvailable": {
"name": "vitest",
"version": "4.0.16",
"isSemVerMajor": true
}npm ls { 취약점 패키지 이름 }