Trawling

Deno 구성원 bartlomieju, iTerm 권한 안내 가림 이슈 닫아

Deno 런타임의 권한 요청 문구가 iTerm 색상 제어로 가려질 수 있다는 이슈 #9666을 저장소 구성원 bartlomieju가 2026년 닫았습니다. 그는 색상 변경을 유효한 사용 사례로 들었고, Max(Goldstein)는 이 사례와 실행 명령 허용의 한계를 들어 Deno 권한만으로는 프로세스 전체를 격리하지 못한다고 주장했습니다.

Max(Goldstein)는 2024년 8월 31일 개인 기술 글에서 Deno의 권한 모델을 비판했습니다. 글에서 언급한 Deno 저장소 이슈 #9666은 iTerm의 사용자 지정 색상 제어 코드로 권한 요청 문구가 알아보기 어려워질 수 있다는 신고였고, 저장소 구성원 bartlomieju가 2026년에 닫았습니다.

Deno 프로그램은 실행 중 Deno.permissions.request()를 호출해 파일 읽기 같은 권한을 요청할 수 있습니다. 런타임은 요청을 같은 터미널에 문자로 띄우고 사용자의 입력을 받습니다. Max는 프로그램이 별도 권한 없이 표준출력에 임의의 데이터를 쓰고 표준입력을 읽을 수 있다는 점을 문제 삼았습니다. 터미널은 출력에 포함된 제어 코드를 화면 동작으로 해석하고, 일부 요청에는 표준입력으로 응답합니다. Max는 프로그램이 권한 안내와 같은 화면을 바꾸거나 터미널 응답을 입력으로 이용할 여지가 있다고 설명했습니다.

이슈 #9666의 재현 코드는 안내 문구를 출력한 다음 iTerm의 사용자 지정 색상 제어로 글자색과 배경색을 바꾸고 env 권한을 요청했습니다. 신고 내용에 따르면 화면에는 사용자를 다른 입력으로 유도하는 문구와 이모지만 남아 실제 권한 요청을 알아보기 어려웠습니다. bartlomieju는 이모지가 남아 프롬프트가 일부 보인다고 답했고, 색상 변경은 AI 에이전트도 사용하는 유효한 사례라며 이슈를 닫았습니다.

이슈의 Development 항목에는 연결된 브랜치나 PR이 없고, Max는 글에서 색상 문제가 수정되지 않았다고 적었습니다. 종료 기록에는 권한 안내가 일부 보이는 상태에서 색상 변경을 허용 가능한 사용으로 본 bartlomieju의 판단이 담겼습니다.

Max는 이와 별도로 터미널이 프로그램의 요청에 응답해 보낸 데이터를 Deno 표준입력에서 승인 입력처럼 읽게 하는 시연도 소개했습니다. 그는 그 시연에서 다룬 구체적인 문제는 오래전에 수정됐다고 썼습니다.

Max는 --allow-run=uname 권한에도 문제가 있다고 주장했습니다. Deno가 실행 명령을 이름으로 찾을 때 PATH를 이용하는데, 스크립트가 추가 권한 없이 자식 프로세스의 PATH를 설정하면 허용한 uname 대신 그 경로에 있는 동명 스크립트가 실행될 수 있다는 예시입니다. Max는 Deno.Command에 임시 디렉터리를 PATH로 지정하고 그곳의 uname 스크립트를 실행해 이 동작을 보였습니다.

이 사례들을 바탕으로 Max는 Deno의 권한 체계가 표준 라이브러리의 접근을 제어하지만 프로세스 전체를 운영체제 수준에서 격리하지는 못한다고 주장합니다. 그는 신뢰하지 않는 코드를 실행할 때 bwrap 같은 별도 샌드박스를 사용하라고 권합니다.

참고 자료

오류 제보