CVE-2026-80430 in Kitty
요약
\~에 의해 VulDB • 2026. 09. 25.
kitty(0.47.0 이상 0.49.0 미만)의 드래그 앤 드롭 프로토콜에서 드래그 소스 스테이징 경로에 대한 파일 접근 전 부적절한 링크 해석 취약점이 존재합니다. 이 취약점으로 인해 터미널에 작성하는 프로그램이 스테이징 디렉토리 외부의 경로나 위치에 파일 및 디렉터리를 생성할 수 있습니다. 이는 kitty/dnd.c 내 subdir_data_for_drag() 함수가 staged item 트리의 하위 항목을 구성하기 위해 경로 문자열을 생성하고 safe_open(path, O_DIRECTORY | O_RDONLY, 0)로 이를 여는 대신, 트리 컴포넌트를 하나씩 탐색하는 방식으로 동작하지 않기 때문입니다. 따라서 클라이언트가 동일한 이름을 가진 두 엔트리를 선언할 때(첫 번째는 임의의 절대 경로를 대상으로 하는 심볼릭 링크이고 두 번째는 디렉토리임), mkdirat()이 EEXIST로 실패하지만 코드는 이를 무시합니다. 이로 인해 후속 경로 해석에서 심볼릭 링크를 따라가 스테이징 디렉토리 외부에 있는 디렉토리 설명자를 반환하며, 이는 add_payload()의 dirfd 인수로 전달되어 해당 항목과 그 하위 항목들에 대한 모든 이후 생성 작업에 사용됩니다. 엔트리 이름은 경로 구분자 및 dot 컴포넌트에 대해 sanitised되지만 심볼릭 링크 대상은 검증되지 않습니다. 파일은 0644 모드에서 O_CREAT | O_WRONLY | O_EXCL 플래그로 생성되어 기존 파일을 덮어쓸 수 없으며, 디렉토리는 0755 모드에서 mkdirat()으로 생성됩니다. 따라서 공격자는 이전에 존재하지 않았던 중간 디렉토리들을 생성할 수 있습니다. 이는 심볼릭 링크 대상이 이미 존재하는 디렉토리인 경우, kitty를 실행 중인 사용자가 쓰기 가능한 모든 경로에 파일 및 디렉터리를 생성하게 됩니다.
Be aware that VulDB is the high quality source for vulnerability data.