![setuid 프로그램이 어떻게 호스트 이름을 남용할 수 있습니까?](https://linux55.com/image/183795/setuid%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%82%A8%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
의 한 구절https://lwn.net/Articles/531381/
"또 다른 가능성은 set-user-ID 애플리케이션이 잠금 파일 이름의 일부로 호스트 이름을 사용할 수 있다는 것입니다. 권한이 없는 사용자가 임의의 호스트 이름을 사용하여 UTS 네임스페이스에서 애플리케이션을 실행할 수 있는 경우 애플리케이션이 열리게 됩니다. 가장 간단하게는 잠금 파일의 효과를 무효화하여 다른 UTS 네임스페이스에서 실행되는 응용 프로그램의 인스턴스에서 잘못된 동작을 유발합니다. 또는 악의적인 사용자가 UTS 네임스페이스에서 set-user-ID 응용 프로그램을 실행할 수 있습니다. 중요한 파일을 덮어쓰도록 잠금 파일을 생성하는 호스트 이름입니다. (호스트 이름 문자열에는 슬래시를 포함한 임의의 문자가 포함될 수 있습니다.)
기사에서 어떤 잠금 파일을 언급하고 있는지 잘 모르겠으며 호스트 이름을 변경하여 이를 어떻게 남용할 수 있는지 자세히 설명할 수 있는 사람이 있습니까?
답변1
프로그램이 wibble
이름을 사용하여 잠금 파일을 생성 하고 호스트 이름을 에서 로 /var/lock/wibble.lock-$(hostname)
변경하고 프로그램이 여기에 무언가(예: PID)를 기록하는 경우 경로 정규화 방법에 따라 암호 데이터베이스를 삭제할 수 있습니다.my-laptop
/../../../etc/password