[Mac] Big Sur 에서도 유효한 inetloc 원격 코드 실행 취약점

Windows 의 lnk (바로 가기) 같은 Mac 의 inetloc 파일을 통한 RCE 취약점 존재

Mac 은 운영체제의 커널 특성상 대소문자 구별이 되어 취약점 패치가 쉽지 않아…

 

inetloc 파일은 mac 에서 사용되는 인터넷 특정 주소의 단축 주소 같은 개념으로 Windows 로 비유하면 바로 가기 파일 (.lnk) 이나 인터넷 바로 가기 (.url) 같은 파일이다.

이 파일을 읽을 때 URL 이 아닌 file:// (운영체제에 존재하는 파일의 로컬 주소) 로 지정할 수 있는데, 이 점을 역으로 이용하여 로컬 파일을 아무런 사용자의 피드백 없이 즉시 수행이 가능한 RCE (Remote Code Excution, 원격 코드 실행) exploit 이 공개되었다.

 

취약점 공격

 

패치된 패턴

inetloc exploit patch
inetloc 취약점 패치된 샘플

 

Apple 은 inetloc 파일을 수행할 때, file:// 형태의 주소일 경우 실행할 수 없도록 제한을 걸어놓았다.

 

inetloc exploit patech execute
inetloc 취약점 패치된 샘플을 실행한 경우

 

 

 

 

취약점 우회

inetloc vulnerability bypass
inetloc 의 URL String 을 대소문자 변경함

 

우회는 매우 간단하다. file:// 대신에 Unix 특성상 대소문자를 구별한다는 점을 이용하여 대/소문자를 의도적으로 변형한 형태로 URL 을 다시 변경했다.

 

 

 

inetloc vulnerability bypass
inetloc 우회 성공한 화면 (계산기 앱 실행)

 

 

사용자에게 어떠한 경고없이 즉시 로컬에 있는 계산기가 실행되었다.

 

취약점 우회가 되는 특성은 macOS 는 Unix 기반의 운영체제를 가지고 있어 대소문자를 타이트하게 구별하는 특징을 지니고 있어 file:// 만으로는 패치가 되지 않기 때문인것으로 보인다.

 

 

 

 

끝으로

신뢰할 수 없는 inetloc 파일을 macOS 기기에서 함부로 실행하지 않는것이 중요하다.

 

 

참고

exploit 시연 및 정보 참고 : https://ssd-disclosure.com/ssd-advisory-macos-finder-rce/