setuid 프로그램이 어떻게 호스트 이름을 남용할 수 있습니까?

setuid 프로그램이 어떻게 호스트 이름을 남용할 수 있습니까?

의 한 구절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

관련 정보