피드로 돌아가기
AppleScript Injection and Directory Traversal — Security Bugs I Fixed in My Own Apps
Dev.toDev.to
Security

외부 입력 데이터 검증 부재로 인한 RCE 및 Path Traversal 취약점 해결

AppleScript Injection and Directory Traversal — Security Bugs I Fixed in My Own Apps

hiyoyo2026년 5월 19일2intermediate

Context

ADB 출력값 및 파일 경로를 신뢰하여 쉘 명령어로 직접 전달하거나 파일 시스템에 접근하는 구조 설계. 외부 입력값이 런타임에 시스템 명령어로 해석되거나 베이스 디렉토리를 벗어날 수 있는 보안 설계 결함 존재.

Technical Solution

  • 쉘 인터프리터를 통한 명령어 실행 방식을 Argument Array 전달 방식으로 변경하여 AppleScript Injection 원천 차단
  • canonicalize() 함수를 통한 절대 경로 정규화 및 starts_with() 검증으로 Directory Traversal 공격 방지
  • symlink_metadata()를 활용한 심볼릭 링크 탐지 및 동기화 대상 제외 로직 구현을 통한 임의 위치 쓰기 공격 차단
  • 외부 입력값에 대한 엄격한 Sanitization 적용 및 쉘 문자열 보간(Interpolation) 제거로 Execution Context 분리

- 외부 시스템(ADB, API 등)에서 수신한 데이터를 쉘 명령어의 인자로 사용할 때 Argument Array 방식 채택 여부 확인 - 파일 시스템 접근 시 정규화된 경로(Canonical Path)가 지정된 Root 디렉토리 내에 존재하는지 검증하는 로직 추가 - 파일 동기화 및 복사 로직 구현 시 Symlink 처리 정책 수립 및 비정상적인 링크 참조 차단 여부 검토

원문 읽기