요약
파일 경로와 서버 로그 등 외부에서 유입되는 문자열이 터미널 제어 문자를 포함한 상태로 출력됩니다. 파일명에 삽입한 ESC[2J가 pseudo-TTY까지 그대로 전달되는 것을 확인했습니다.
- 검토 기준:
main@4e87765f95c106edb3c956cfad2abc1db64c0c39
- 판정: raw 전달과 화면 제어 CONFIRMED
- 우선순위: P2
영향
검증된 영향은 ANSI CSI를 통한 화면 조작입니다. OSC 52 클립보드 조작, CI renderer의 특수 처리 등은 터미널 정책에 따라 달라지며 이번 검증에서 확인하지 않았습니다. RCE로 분류하지 않습니다.
발생 조건 및 확인 범위
- 파일명 또는 서버 로그에 제어 문자가 포함될 것
- 해당 값을 출력하는 CLI 명령을 실행할 것
- 실제 시각적 영향은 터미널의 escape 정책에 따라 달라짐
macOS pseudo-TTY에서 raw byte 1b 5b 32 4a 전달을 확인했습니다.
재현 및 검증 방법
- 유효한 팩 아래 namespace 이름에
bad\x1b[2Jname을 만듭니다.
- pseudo-TTY에서
dpt check --pack <pack>을 실행합니다.
- transcript를
od -An -tx1 또는 xxd로 검사합니다.
- 현재
1b 5b 32 4a가 출력에 존재하는지 확인합니다.
기대 동작
비신뢰 문자열의 CSI/OSC 및 C0/C1 문자를 안전한 표현으로 제거하거나 escape해야 합니다. DPT 내부 스타일 ANSI와 외부 문자열을 구분해야 합니다.
완료 조건
관련 코드
요약
파일 경로와 서버 로그 등 외부에서 유입되는 문자열이 터미널 제어 문자를 포함한 상태로 출력됩니다. 파일명에 삽입한
ESC[2J가 pseudo-TTY까지 그대로 전달되는 것을 확인했습니다.main@4e87765f95c106edb3c956cfad2abc1db64c0c39영향
검증된 영향은 ANSI CSI를 통한 화면 조작입니다. OSC 52 클립보드 조작, CI renderer의 특수 처리 등은 터미널 정책에 따라 달라지며 이번 검증에서 확인하지 않았습니다. RCE로 분류하지 않습니다.
발생 조건 및 확인 범위
macOS pseudo-TTY에서 raw byte
1b 5b 32 4a전달을 확인했습니다.재현 및 검증 방법
bad\x1b[2Jname을 만듭니다.dpt check --pack <pack>을 실행합니다.od -An -tx1또는xxd로 검사합니다.1b 5b 32 4a가 출력에 존재하는지 확인합니다.기대 동작
비신뢰 문자열의 CSI/OSC 및 C0/C1 문자를 안전한 표현으로 제거하거나 escape해야 합니다. DPT 내부 스타일 ANSI와 외부 문자열을 구분해야 합니다.
완료 조건
check, shell 로그, exec 메시지 회귀 테스트를 추가한다.관련 코드
project.CheckprintCheckStyledstyleSemanticLine