diff --git a/Project_Roadmap.md b/Project_Roadmap.md index 8108aed..8cdfa76 100644 --- a/Project_Roadmap.md +++ b/Project_Roadmap.md @@ -46,7 +46,7 @@ PR #48·#49·#50), 실기 후속도 PR #52로 들어왔다. 남은 것은 게시 게시 절차: `` → Unshipped를 Shipped로 이관 → CHANGELOG `[Unreleased]` → 버전 → README 배지(en/ko) → PR로 3-OS CI → `v1.3.0` 태그 push(**사람이 실행**, Trusted Publishing) → **nuget.org 패키지 페이지 육안 확인**. -**1a. 라운드35 · 전수 감사 (2026-10-01, PR 대기)** — `src` 약 19,500줄을 모델 → 포매터 → 컨트롤 순으로 읽었다. 결함 **16건** +**1a. 라운드35 · 전수 감사 (2026-10-01, PR #59 머지)** — `src` 약 19,500줄을 모델 → 포매터 → 컨트롤 순으로 읽었다. 결함 **16건** (프로세스 종료 3·데이터 소실 3·보안 1), 전부 빨강 먼저 → 수정 → 개별 반증. 대부분 이전 라운드가 재지 않은 **입력의 크기·깊이** 축이다. 테스트: `Round35AuditTests`. - 치명(프로세스 종료, catch 불가): HTML `
` 2,000겹(11 KB) 붙여넣기, 중첩 표 400단(RTF `\itap` 무제한) 렌더 — 스택 오버플로. 수정: DOM 128단 아래는 글자로 접기(비재귀) + HtmlAgilityPack id 색인 끔(그 제거가 재귀) · RTF 중첩 32단. @@ -54,7 +54,7 @@ PR #48·#49·#50), 실기 후속도 PR #52로 들어왔다. 남은 것은 게시 인라인 표 섞인 한 문단 붙여넣기가 표를 버림. - 보안: 파일의 그림 MIME이 내보낸 HTML ``에 그대로 → 속성 주입. - 메모리·시간: 픽셀 폭탄(1.5 MB → 1.6 GB) · 표 증폭(행 × 가장 넓은 행) · `.flow` 미참조 항목 전부 풀기 · RTF `IndexOf` O(n²). -- **사용자 확인 필요**: 그림 디코드 상한 **1억 픽셀**(넘으면 붙여넣기 거절, 문서 안 것은 바이트 보존·미표시) — 200 MP 폰 사진은 걸린다. +- **사용자 결정(10-01, 그대로 확정)**: 그림 디코드 상한 **1억 픽셀**(넘으면 붙여넣기 거절, 문서 안 것은 바이트 보존·미표시) — 200 MP 폰 사진은 걸린다. 가져오는 표 상한 1,000열 / 25만 셀, HTML DOM 128단, RTF 표 중첩 32단, `.flow` 그림 항목 256 MB. - 기각(실측): `file:///%5C%5Chost` UNC 우회(경로가 `\\\host`가 되어 SMB 안 탐) · 링크 셸 실행(`http(s)`만 연다) · 셀 문단 여백의 서명 누락(셀 측정이 안 씀). - 남긴 것(미수정, 저): JPEG 헤더 스캔이 채움 바이트에 약함 · 앵커 셀이 중첩 표로 시작하면 병합한 글자가 그 안으로 · RTF 글꼴명의 `;`가 글꼴 표를 깸 ·