CVE-2026-68186 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 11.

리눅스 커널에서 다음 취약점이 해결되었습니다:

binfmt_misc: 인터프리터가 열릴 때까지 have_execfd를 한 번만 설정합니다.

load_misc_binary()는 'O'(또는 'C') 플래그를 보는 즉시 bprm->have_execfd를 높입니다(설정합니다). 이는 인터프리터를 열기 훨씬 전에 발생합니다. 해당 open 호출이 실패하면 플래그가 bprm에 계속 설정된 상태로 남습니다. binfmt_misc은 형식 목록의 맨 앞에 있으므로, -ENOEXEC을 반환하는 인터프리터 open 실패는 검색이 나중에 있는 다른 형식으로 넘어가게 합니다. 이는 인터프리터를 스테이지하지 않은 채 일치하는 바이너리를 직접 실행한다는 것을 의미합니다. 따라서 bprm->executable은 NULL인 반면 have_execfd는 디스크립터가 존재한다고 잘못 주장합니다.

결과적으로 begin_new_exec()에서 누락된 executable을 역참조합니다:

would_dump(bprm, bprm->executable);

그리고 NULL 역참조(NULL deref)로 이어집니다. 만약 그렇지 않았다면 동일한 함수 내 이후의 인계(hand-off)도 실패했을 것입니다. FD_ADD(0, bprm->executable)는 NULL 파일을 -ENOMEM으로 거부합니다. 두 지점 모두 되돌릴 수 없는 시점을 지나므로 어떤 경우에도 exec를 롤백할 수 없습니다.

binfmt_misc가 사용자 네임스페이스에서 마운트될 수 있으므로 비특권 사용자에게도 도달 가능합니다. 따라서 사용자는 'O' 항목을 등록하고 해당 인터프리터가 FUSE 마운트에 있는 경우에, FUSE 서버가 -ENOEXEC으로 open을 실패하게 하여 해당 항목과 일치하는 네이티브 ELF 파일을 실행할 수 있습니다.

have_execfd는 설명되는 executable과 함께 설정되지 않는 한 의미가 없습니다. 이는 인터프리터가 열리고 스테이지된 후에야 설정됩니다. 따라서 이제 그곳에서 이를 높이고, 이미 그 시점에 설정되어 있는 execfd_creds 옆에 배치합니다. open 실패 시 이것이 명확하게 초기화된 상태로 남으므로, 대체 형식(fallback format)은 바이너리로부터 자격 증명을 파생시키고 네이티브 exec의 경우와 마찬가지로 AT_EXECFD를 출력하지 않습니다. open 이전에 load_misc_binary()가 수행하는 argv 재작성은 아직 되돌려지지 않았습니다. 이는 바이너리가 argv[0]에서 인터프리터 경로를, argv[1]에서 자체 경로를 보게 된다는 것을 의미하지만, 이는 이 변경보다 이전의 상황이며 exec이 faulting을 멈춘 후에야 관찰 가능해졌습니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 07. 30.

모더레이션

수락

항목

VDB-387535

EPSS

0.00000

활동

낮음

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!