"cat readme.txt"는 iTerm2를 사용하면 안전하지 않다
·2026.04.18 03:43
핵심 내용
iTerm2 SSH integration의 신뢰 경계 오류로 `cat`만으로 RCE가 가능했다.
자세히 보기
iTerm2의 SSH integration이 터미널 출력에 포함된 가짜 conductor 프로토콜을 신뢰하는 것이 핵심 문제였다.
정상 흐름에서는 iTerm2가 원격 세션에 conductor 스크립트를 올리고, PTY를 통해 escape sequence를 주고받으며 shell 탐지, Python 확인, 디렉터리 이동, 파일 업로드, 명령 실행을 조율한다.
하지만 이 구현은 터미널 출력이 실제 원격 conductor에서 온 것인지 검증하지 못했다. 그 결과 악성 파일이나 서버 응답이 다음과 같은 내용을 출력하면:
DCS 2000p로 conductor hook을 가장하고OSC 135메시지로 요청/응답을 흉내 내며- iTerm2를 정상 SSH integration 상태 머신으로 끌고 갈 수 있었다.
공격자는 이 상태를 이용해 cat readme.txt 같은 무해해 보이는 명령만 실행해도 iTerm2가 스스로 getshell(), pythonversion() 같은 conductor 동작을 진행하게 만들었다. 이후 iTerm2가 run(...) payload를 PTY로 보내면, 실제 원격 conductor가 없으므로 로컬 셸이 그 base64 문자열을 일반 입력으로 받아들인다.
PoC는 두 파일로 구성된다.
readme.txt: 악성DCS 2000p/OSC 135시퀀스를 포함한 파일ace/c+aliFIo: 최종 payload가 가리키는 실행 가능 helper script
공개 일정은 다음과 같다.
- 3월 30일: iTerm2에 신고
- 3월 31일: 수정 커밋
a9e745993c2e2cbb30b884a16617cd5495899f86반영
작성 시점에는 수정이 stable release에 아직 도달하지 않았다고 밝혔다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.