🇰🇷 한글 설명
jsPDF 4.1.0 미만 버전의 Node.js 빌드에서 addJS 메서드가 모듈 범위의 공유 변수를 사용하여 발생하는 취약점입니다. 동시 요청이 발생하는 환경에서 변수 값이 덮어씌워져 사용자 간 데이터가 유출될 수 있는 교차 사용자 데이터 유출(Cross-User Data Leakage) 문제가 존재합니다.
💡 쉬운 설명
여러 사람이 동시에 PDF를 만들 때, 한 사람의 정보가 다른 사람의 PDF에 섞여 들어갈 수 있는 문제입니다. 서버가 정보를 저장하는 공간을 공유하기 때문에 발생하는 실수입니다.
🇺🇸 원문 (English)
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.1.0, the addJS method in the jspdf Node.js build utilizes a shared module-scoped variable (text) to store JavaScript content. When used in a concurrent environment (e.g., a Node.js web server), this variable is shared across all requests. If multiple requests generate PDFs simultaneously, the JavaScript content intended for one user may be overwritten by a subsequent request before the document is generated. This results in Cross-User Data Leakage, where the PDF generated for User A contains the JavaScript payload (and any embedded sensitive data) intended for User B. Typically, this only affects server-side environments, although the same race conditions might occur if jsPDF runs client-side. The vulnerability has been fixed in
[email protected].
📍 영향받는 시스템
jsPDF Node.js build versions prior to 4.1.0
⚔️ 공격 벡터
동시 다발적인 PDF 생성 요청을 통한 레이스 컨디션(Race Condition) 유도
🛡️ 대응 방법
jsPDF를 4.1.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 jspdf의 버전이 4.1.0 미만인지 확인하십시오.
npm list jspdf | grep jspdf