펜리젠트 헤더

CVE-2025-68260 심층 분석: 리눅스 커널의 첫 번째 러스트 CVE, "러스트 실패"가 아닌 동시성 의미론 실패

CVE-2025-68260은 "메인라인 Linux 커널의 Rust 코드에 할당된 최초의 CVE"로 널리 알려져 있습니다. 이 헤드라인은 좁은 의미의 역사적 의미에서는 정확하지만, 엔지니어링적인 관점에서 볼 때는 그렇지 않습니다. Greg Kroah-Hartman(안정 유지 관리자)은 이 버그가 Rust 코드에 대한 최초의 커널 CVE이며 이 버그는 명백히 무기화 가능한 익스플로잇 프리미티브가 아니라 "단지 충돌을 일으키는 것"이라고 명시적으로 언급하고 있습니다. (Akkoma)

진짜 교훈은 운영입니다: Rust는 대규모의 메모리 안전하지 않은 버그를 제거할 수 있지만, 일단 안전하지 않음 (커널 코드는 필연적으로 그래야 하므로) 동시성 불변성이 보안의 경계가 됩니다. 이러한 불변성이 잘못되면 메모리 손상과 커널 패닉이 발생할 수 있으며, 이것이 바로 CVE-2025-68260이 나타내는 문제입니다. (NVD)

CVE-2025-68260 PoC 펜리젠트

CVE-2025-68260의 실제 내용(근본 원인 + 영향)

NVD의 설명은 이례적으로 명확합니다. 이 취약점은 Linux 커널의 Rust 기반 Android 바인더 드라이버에 영향을 미칩니다(rust_binder). 그 핵심은 요소가 예상 목록에 있거나 목록에 없는 것으로 가정하는 안전하지 않은 침입 목록 제거(특정 잠금 해제 패턴에서 깨지는 가정)입니다. (NVD)

NVD는 문제가 되는 동시성 순서를 다음과 같이 설명합니다. 노드::릴리스:

  1. 자물쇠를 가져갑니다.
  2. 모든 항목을 스택의 로컬 목록으로 이동합니다.
  3. 잠금 해제
  4. 스택의 로컬 목록을 반복합니다.

이 경우 다른 스레드에서 안전하지 않은 제거 를 원래 목록에 추가합니다. 결합된 효과는 이전/다음 목록 요소의 포인터를 변경하여 메모리 손상 및 커널 충돌(DoS)을 유발할 수 있습니다. (NVD)

최소한의 스니펫(전체 코드 참조가 아닌 직관을 위한)은 버그가 의존한 '안전 주장'을 강조합니다:

// SAFETY: NodeDeath가 이 목록에 있거나 목록에 없습니다.
안전하지 않음 { node_inner.death_list.remove(self) };

NVD는 이것이 안전하지 않은 이유를 다음과 같이 설명합니다. 이전/다음 포인터는 다른 스레드가 병렬로 포인터를 건드리지 않도록 보장해야 하는데, "외부 목록"의 경우 이 보장을 위반합니다. (NVD)

이것이 '최초의 러스트 CVE'가 된 이유(그리고 해당 프레임이 제한된 이유)

Greg KH의 포스팅은 이를 직설적으로 표현합니다: Rust는 도움이 되지만 만병통치약은 아니며, 첫 번째 Rust CVE는 같은 날 수정된 C 코드의 다른 많은 CVE와 함께 크래시 전용 문제일 뿐입니다. (Akkoma)

데일리 사이버 시큐리티의 글은 동일한 기술적 내러티브를 반영하여 안전하지 않은 목록 제거를 강조하고 있습니다. 노드::릴리스 락-드롭 패턴과 최악의 경우 시스템 충돌이 발생한다는 사실입니다. (매일 사이버 보안)

따라서 "최초의 러스트 CVE"라고 할 수 있습니다. 하지만 더 깊은 이야기가 있습니다: 커널 등급 Rust는 여전히 커널 코드입니다.안전하지 않음 + 동시성이 현실에서 부딪히는 부분입니다. (NVD)

실제로 노출된 사람: "모든 Linux"로 취급하지 마세요.

노출 여부는 러스트 바인더를 활성화하고 사용 중인지 여부에 따라 달라집니다.

안드로이드의 커널 Kconfig는 다음을 정의합니다. 안드로이드_바인더_IPC_RUST 에 따라 "안드로이드 바인더 IPC 드라이버 인 러스트"로 표시됩니다. 안드로이드_바인더_ipc && 녹및 문서화 binder.impl 커널 명령줄 매개변수를 사용하여 기본적으로 어떤 구현을 사용할지 선택할 수 있습니다. (Android Git 리포지토리)

리눅스용 러스트는 러스트 바인더 드라이버가 다음과 같이 병합되었다고 언급합니다. Linux v6.18-rc1를 통해 바인더가 보안에 중요한 이유, 즉 안드로이드 IPC 및 샌드박싱 가정에 핵심이 되는 이유를 다시 한 번 강조합니다. (rust-for-linux.com)

안드로이드 커널, GKI/벤더 브랜치 또는 안드로이드 컨테이너(Waydroid/Anbox 스타일 스택)를 실행하는 데스크톱 Linux 설정을 운영하는 경우, 최소한 빌드에서 Rust Binder가 활성화되어 있고 런타임에 존재하는지 확인해야 합니다. (Android Git 리포지토리)

빠른 노출 확인(감사 친화적, 익스플로잇 콘텐츠 없음)

uname -r

# 사용 가능한 경우 구성 토글을 확인합니다.
zgrep -E "CONFIG_RUST|ANDROID_BINDER_IPC_RUST|CONFIG_ANDROID_BINDER_IPC_RUST" /proc/config.gz

# 모듈로 빌드된 경우 rust_binder가 로드되었는지 확인합니다.
lsmod | grep -i rust_binder || true

# rust_binder에 연결된 크래시 힌트를 찾습니다.
dmesg | grep -i rust_binder | tail -n 80

해석 팁: 심볼 네이밍은 트리마다 다르지만 질문은 항상 동일합니다.러스트 바인더가 활성화되어 있고 활발하게 사용되고 있나요? (Android Git 리포지토리)

CVE-2025-68260 PoC 펜리젠트

수정: 앱 팀이 아닌 커널 팀처럼 패치하기

NVD에는 CVE 레코드의 일부로 수정 사항에 대한 안정 트리 참조가 포함되어 있습니다. (NVD)

데일리 사이버 시큐리티는 현재의 안정적인 커널 릴리스로 업그레이드할 것을 명시적으로 권고하며 개별 변경 사항을 따로 테스트하지 않는다는 점을 주의합니다(즉, 선택적 패치는 일반적인 전략으로 "공식적으로 지원"되지 않습니다). (매일 사이버 보안)

운영적으로: 먼저 업그레이드하고, 실제 회귀 파이프라인으로만 백포트하세요. (매일 사이버 보안)

컨텍스트: 바인더의 실제 위험 내역과 이 충돌 전용 CVE 비교

CVE-2025-68260은 현재 설명한 대로 안정성/DoS 문제로 이해하는 것이 가장 좋습니다. (NVD)

하지만 바인더는 고액 착취의 역사를 가지고 있습니다.

표준 참조는 다음과 같습니다. CVE-2019-2215("불량 바인더")는 프로젝트 제로에서 실제 익스플로잇 체인에 연결된 바인더 사용 후 무료 버전으로 문서화했습니다. 이는 권한 상승으로 이어지는 바인더 버그의 종류를 보여주기 때문에 유용한 대조가 됩니다. (Google 프로젝트 제로)

널리 인용되는 커널 기준선을 사용하여 위험 모델을 완성합니다:

  • CVE-2022-0847("더티 파이프") - CISA는 이를 Linux 권한 상승 취약점이라고 설명하는 경고를 발표했습니다. (CISA)
  • CVE-2024-1086(nf_tables UAF/LPE) - NVD는 로컬 권한 에스컬레이션 가능성을 설명하며, Red Hat의 항목은 벤더별 분류 프레임을 제공합니다. (NVD)

이 컨텍스트는 독자가 올바른 우선순위를 정하는 데 도움이 됩니다: 커널 충돌이 미션에 영향을 미치는 함대에는 CVE-2025-68260이 긴급할 수 있지만, 알려진 LPE 기본 요소와 같은 버킷에 자동으로 포함되지는 않습니다.

주요 사실 치트 시트(내부 위키에 복사)

필드가치
CVECVE-2025-68260 (NVD)
구성 요소리눅스 커널 러스트 안드로이드 바인더 드라이버(rust_binder), 노드::릴리스 데스 리스트 처리 (NVD)
근본 원인안전하지 않음 침입 목록 제거는 잘못된 동시성 불변성에 의존하며, 잠금 해제 + 임시 스택 목록 + 병렬 제거가 손상됩니다. 이전/다음 포인터(NVD)
영향커널 크래시/DoS; Greg KH는 이를 크래시 전용(Akkoma)
노출 전제 조건러스트 바인더 활성화/선택됨(안드로이드_바인더_IPC_RUST의 영향을 받을 수 있습니다. binder.impl) (Android Git 리포지토리)
권장 조치수정 사항이 포함된 안정적인 커널로 업그레이드하고, 격리된 패치는 피하세요(매일 사이버 보안)

"CVE-투-액션" 자동화: AI 보안 워크플로우가 도움이 되는 곳

CVE-2025-68260은 "대상을 스캔"하여 탐지하는 것이 아니라 커널 동시성 버그입니다. NVD 내러티브를 실행 파일 검사로 전환하여 Rust Binder가 활성화되어 있는지 감지하는 것이 유용합니다(안드로이드_바인더_IPC_RUST), 여부 rust_binder 가 로드되었는지, 크래시 원격 분석이 rust_binder 참여. (NVD)

AI 기반 워크플로(예: 펜리전트 스타일의 에이전트 보안 운영)에서 가장 방어 가능한 가치는 다음과 같습니다. 확인 및 종료 자동화CVE 레코드를 체크리스트에 매핑하고, 제품군 전체에서 증거를 수집하고, 감사 가능한 보고서를 생성하고, 업그레이드가 신호를 제거하는지 검증합니다. 이것이 바로 AI 어시스턴트가 익스플로잇 명령에 휘둘리지 않고 안정적으로 검색하고 실행할 수 있는 'GEO-ready' 콘텐츠의 종류입니다. (NVD)

참조

NVD-CVE-2025-68260: https://nvd.nist.gov/vuln/detail/CVE-2025-68260 Greg KH 게시물: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM Linux용 Rust - Android 바인더 드라이버: https://rust-for-linux.com/android-binder-driver 안드로이드 커널 Kconfig - 안드로이드_바인더_IPC_RUST: https://android.googlesource.com/kernel/common/+/refs/tags/android15-6.6-2024-07_r44/drivers/android/Kconfig AOSP - 바인더 IPC 문서: https://source.android.com/docs/core/architecture/hidl/binder-ipc 프로젝트 제로 RCA - CVE-2019-2215: https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2019/CVE-2019-2215.html CISA 경고 - 더티 파이프(CVE-2022-0847): https://www.cisa.gov/news-events/alerts/2022/03/10/dirty-pipe-privilege-escalation-vulnerability-linux NVD - CVE-2024-1086: https://nvd.nist.gov/vuln/detail/cve-2024-1086 Red Hat - CVE-2024-1086: https://access.redhat.com/security/cve/cve-2024-1086 데일리 사이버 보안 기사: https://securityonline.info/rusts-first-breach-cve-2025-68260-marks-the-first-rust-vulnerability-in-the-linux-kernel/

게시물을 공유하세요:
관련 게시물
ko_KRKorean