
AAMVA 준수 ID 시스템에서의 체계적인 PDF417 검증 취약점에 대한 연구 (CVE-2025-31336, CVE-2025-31337, scr1841160)
이 저장소는 정부 신분증, 기업 솔루션 및 소비자 애플리케이션에 영향을 미치는 AAMVA 표준 PDF417 바코드 검증 시스템의 심각한 취약점을 문서화한 포괄적인 보안 연구를 포함합니다. 이 연구는 ID 검증 시스템이 운전면허증 바코드를 처리하는 방식의 체계적인 결함을 입증하는 완전한 기능의 개념 증명(PoC)을 포함합니다.
중요: 이 코드는 보안 연구 목적으로만 제공됩니다. 허용된 사용법은 LICENSE.md 파일을 참조하세요.
이 연구는 다음 원칙을 준수하여 수행되었습니다:
이 연구는 다음에 할당된 취약점을 입증합니다:
기본 점수: 10.0 (심각)
벡터: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
세부 분석:
악용 예시:```rust // Temporal validation bypass demonstration let license = CaliforniaLicense::builder() .birth_date("06201500") // Year 1500 - Medieval era .validate(); // Returns OK in affected systems
## 조정 내역 및 공급업체 응답 요약
### 공개 타임라인
- **2025년 3월 22일**: MITRE에 최초 CVE 요청 제출
- **2025년 3월 25일**: IDScan.net 개념 증명 제출 및 확인
- **2025년 3월 28일**: TokenWorks 취약점 확인 수신
- **2025년 4월 3일**: CISA VINCE 사건 VU#396042 공식 개시
- **2025년 4월 9~16일**: 영향받은 공급업체와의 광범위한 기술 논의
- **2025년 6월 18일**: CISA 사건 종결 결정 ("이해된 위험"으로 dismiss)
- **2025년 7월 1일**: 연장된 조정 기간 후 공개 공개
### 공급업체 응답 및 기술적 이견
#### IDScan.net (Joshua Sheetz, CISO/VP Engineering)
**초기 응답**: *"조사 결과, 단지 바코드 데이터를 스푸핑한 것으로 보입니다. 이는 일반적인 표준입니다."*
**기술적 입장**:
- 파서가 "단지 데이터를 읽을 뿐"이며 검증 책임이 없다고 주장
- 불가능한 값(524세 개인)이 "파서"에서 허용 가능하다고 주장
- 구현별 취약점을 AAMVA 표준 한계로 dismiss
- "수백 가지 알고리즘 보안 검사"에 대한 자체 마케팅 주장과 모순
**마케팅 vs. 현실 격차**:
- VeriScan 웹사이트는 "가짜 ID 탐지 / ID 인증"을 약속
- "가짜 ID를 잡아내고" "보안 검사"를 수행한다고 주장
- 기술 분석 결과, 형식 준수 외에는 최소한의 검증만 있는 것으로 드러남
#### TokenWorks 응답
- 문제를 "DMV 구현 문제"로 인정
- 공급업체의 암호화 검증 책임을 축소
- 수정 일정 제공되지 않음
#### CISA 결정 (2025년 6월 18일)
**최종 결정**: *"CISA는 이것이 AAMVA DL 표준에서 이해된 위험이므로 취약점이 아니라고 결정했습니다."*
**CISA 입장의 기술적 분석**:
이 결정은 표준 한계와 구현별 취약점을 혼동한 것으로 보입니다. 연구는 별개의 기술적 문제를 문서화했습니다:
1. **다중 계층 취약점 분류**:
- **1계층**: AAMVA 표준 암호화 결함 (인정됨)
- **2계층**: 구현별 검증 실패 (CISA에 의해 dismiss됨)
- **3계층**: 마케팅 주장 대 실제 보안 기능 (다루지 않음)
2. **문서화된 구현별 문제**:
- **CWE-20 (Improper Input Validation)**: 생리학적으로 불가능한 값 수용
- **CWE-345 (Insufficient Verification of Data Authenticity)**: 암호화 검증 없음
- **CWE-770 (Allocation of Resources Without Limits)**: 속도 제한 없음
- **CWE-841 (Improper Enforcement of Behavioral Workflow)**: 패턴 탐지 없음
## 개념 증명 검증 증거
### 미주리주 ShowMeID 정부 애플리케이션 우회
 미주리주 ShowMeID 우회 증거```shell
gpg --verify signatures/show_me_id/img.png.asc scan_proof/show_me_id/img.png
영향: 미주리 주 공식 신분증 확인 애플리케이션의 완전한 우회로, 주 차원의 신원 확인 시스템의 시스템적 취약점을 입증합니다.
```shell
gpg --verify signatures/veriscan/california/andrew_before.png.asc scan_proof/veriscan/california/andrew_before.png
gpg --verify signatures/veriscan/california/andrew_after.png.asc scan_proof/veriscan/california/andrew_after.png
#### 애리조나 라이선스 검증 우회



```shell
gpg --verify signatures/veriscan/arizona/unanimous.png.asc scan_proof/veriscan/arizona/unanimous.png
gpg --verify signatures/veriscan/arizona/unanimous_1.png.asc scan_proof/veriscan/arizona/unanimous_1.png
```shell
gpg --verify signatures/veriscan/florida/wendy_synthesized.png.asc scan_proof/veriscan/florida/wendy_synthesized.png
#### 조지아 라이선스 검증 우회

```bash
# Verify Georgia bypass evidence
gpg --verify signatures/veriscan/georgia/hire_me_2.png.asc scan_proof/veriscan/georgia/hire_me_2.png
```shell
gpg --verify signatures/veriscan/new_jersey/wendy_synthesized.png.asc scan_proof/veriscan/new_jersey/wendy_synthesized.png
#### 사우스캐롤라이나 라이선스 검증 우회

```shell
gpg --verify signatures/veriscan/south_carolina/slander.png.asc scan_proof/veriscan/south_carolina/slander.png
텍사스 우회 증거 - 일관된 취약점 패턴을 주 구현 전반에 걸쳐 보여줌```shell
gpg --verify signatures/veriscan/texas/slander.png.asc scan_proof/veriscan/texas/slander.png
## 기술적 증거 및 공급업체 반박
### 문서화된 취약점
#### 1. 시간 유효성 검증 우회
**발견 사항**: VeriScan이 중세 시대(예: 1500년)의 생년월일을 수락함
**공급업체 응답**: *"특히 파서에서 경계선을 어디에 그을 것인가"*
**기술적 반박**: 인간 생리학적 한계는 명확한 유효성 검증 경계(최대 약 122년)를 제공함
#### 2. 패턴 탐지 실패
**발견 사항**: 동일한 면허 번호가 다른 이름으로 반복적으로 수락됨
**공급업체 응답**: *"첫 번째 스캔이 실제인지 두 번째 스캔이 실제인지 알 수 없습니다"*
**기술적 반박**: 패턴 탐지는 진위 여부와 관계없이 의심스러운 행동을 플래그 지정함
#### 3. 마케팅 주장 불일치
**발견 사항**: 제품이 "보안 검사" 및 "가짜 신분증 탐지"를 제공한다고 마케팅됨
**공급업체 응답**: *"파싱 도구만 사용하는 경우... 보유한 기능 세트에 제한됩니다"*
**기술적 반박**: 마케팅 자료는 명시적으로 검증 기능을 주장함
#### 4. 상업용 면허 영향
**발견 사항**: CDL(상업용 운전면허) 우회는 공공 안전 위험을 초래함
**공급업체 응답**: 구체적으로 다루지 않음
**기술적 영향**: 위험물/운송 자격 증명 위조 가능성
## CVE-2025-31337: IDScan.net 검증 결함
### 영향을 받는 제품
- **VeriScan** 기업 검증 플랫폼
- **VSCloud Enterprise** 클라우드 기반 검증
- **IDScan API를 사용하는 모바일 검증 애플리케이션**
### 취약점 세부 사항
**핵심 기술적 문제**:
1. **시간 유효성 검증 실패**:
- 생리학적으로 불가능한 생년월일(예: 1500년)을 수락함
- 연령 계산에 대한 상한 검증 없음
- 미래 날짜의 발급/만료일이 검증 통과
2. **헤더 전용 검증**:
- 콘텐츠 진위보다 AAMVA 형식 준수 검증
- 암호화 서명 검증 누락
- 논리적 일관성 확인 없는 정적 필드 검증
3. **정적 IIN 수락**:
- 실시간 발급자 데이터베이스 교차 확인 없음
- 유효한 주 IIN(예: 636014=CA)을 합성 데이터와 함께 수락
- 권위 있는 DMV 기록에 대한 검증 누락