← 패치노트

수정 2026-07-31

v1.36.96

실행기를 만들지 않고 문서를 띄운다 (P-0010)

실행기는 만들지 않았다.

핵심 변경

**렌더러는 최소 부분집합만 해석한다** — 제목(H1~H6) · **단층** 목록(중첩은 평탄화) · 순서 목록(**원문 번호 보존** — 시작값과 건너뛴 번호를 ol start·li value 로) · 코드펜스 · 표(**정렬 반영**) · 링크 · 강조. 나머지는 **이스케이프된 평문**이다(예외: 자리표시자와 충돌하는 U+0001·U+0002 는 표시 전에 제거한다). 이 파일은 사용자 문서를 그대로 싣기 때문에 파서를 넓힐수록 XSS 면이 넓어진다. 원시 HTML(<script>, <img onerror>)은 글자로 남고, 링크는 http(s)/mailto/앵커/상대경로만 통과한다(javascript:·data:·vbscript:·프로토콜 상대 // 거부).
**자격증명 표지가 있는 문서는 본문을 아예 싣지 않는다.** 값 단위 마스킹을 다섯 번 고쳤고 매번 새 누출 경로가 나왔다(아래) — 그래서 **마스킹을 안전의 전제에서 뺐다**. 표지는 값이 아니라 **형식**으로만 정의해 줄 앞 접두어(> ·- ·들여쓰기)·대소문자·base64 조성·placeholder 모양에 의존하지 않는다. 마스킹(redactSecrets, 대시보드와 같은 술어)은 표지가 없는 문서에 대한 **두 번째 방어층**으로만 남는다.
**상한과 고지**: 문서당 64KB · 전체 512KB(**UTF-8 바이트**). 잘리면 x/y자(뒷부분만) 로 적는다. 전체 상한이 남은 경우 **잔여 예산만큼 담고**, 잔여가 의미 없는 크기(전체 상한의 1/8, 최대 2KB)면 조각 대신 "담지 않았다"고 고지한다. (기본 7종에서는 7×64KB=448KB 라 전체 상한이 걸리지 않는다 — 목록이 늘 때를 위한 backstop 이고, 상한을 주입해 분기를 실제로 발화시켜 시험한다.) 누적 로그(진행 추적·결정 기록)는 **뒤**를 남기고 그 외는 앞을 남긴다 — 1.36.95 handoff 에서 고친 그 방향 규칙을 그대로 따른다.

GitHub 릴리스 v1.36.96 →