Devastating 'Dirty Frag' exploit leaks out, gives immediate root access on most
요약
Dirty Frag 취약점은 2017년 이후 대부분의 Linux 시스템에 영향을 미치는 심각한 로컬 권한 상승(privilege-escalation) 취약점으로, 공격자가 작은 프로그램을 실행하는 것만으로도 즉시 루트(root) 관리자 권한을 얻을 수 있게 합니다. 이 취약점은 Copy Fail과 유사하게 페이지 캐시 설명자를 악용하여 제로 복사 작업을 이용하며, 여러 인기 Linux 배포판에 영향을 미치고 있습니다. 다행히도, 이 취약점을 완화하는 것은 비교적 간단합니다. IPSec 네트워킹과 관련된 esp4, esp6, rxrpc 모듈을 비활성화함으로써 대부분의 서버 기능에 영향을 주지 않으면서 시스템을 보호할 수 있습니다. 또한, 패치가 제공되는 즉시 모든 서버를 업데이트하고 패치하는 것이 가장 중요합니다.
핵심 포인트
- Dirty Frag는 2017년 이후 출시된 거의 모든 Linux 배포판에 영향을 미치는 심각한 로컬 취약점입니다.
- 공격자는 간단한 프로그램 실행만으로도 시스템에서 즉시 루트 권한을 획득할 수 있습니다 (권한 상승 공격).
- 취약점은 페이지 캐시 설명자를 악용하여 제로 복사(zero-copy) 작업을 이용하는 메커니즘을 사용합니다.
- 완화 방법으로는 IPSec 관련 모듈(esp4, esp6, rxrpc)을 비활성화하는 것이 있으며, 이는 서버 기능에 큰 영향을 주지 않습니다.
- 가장 중요한 대응책은 패치가 제공되는 즉시 시스템을 업데이트하고 패치하는 것입니다.
시스템 관리자 여러분에게 한 가지 질문입니다: 2017 년 이후 대부분의 시스템에 영향을 미치는 단일 인스턴트 루트 (instant-root)™️ Linux 취약점보다 무엇이 더 좋겠습니까? 물론 두 가지입니다. 오늘의 나쁜 소식은 Dirty Frag 취약점을 통해 왔으며, 이는 현재 Linux 서버 세계를 불태우고 있는 Copy Fail 공격과 유사한 메커니즘을 사용합니다. 이 취약점은 2017 년 이후 거의 모든 Linux 설치에 영향을 미치며, 사전 경고가 없었으므로 패치가 없습니다. 이는 준비가 되기 전에 취약점이 공개된 embargo 가 깨진 것으로 보입니다.
다시 말하면, 영향받는 시스템에서 작은 프로그램을 실행하기만 하면 로컬 사용자가 즉시 루트 (관리자) 권한을 얻을 수 있습니다. 이 공격은 특정 시스템 조건이나 타이밍에 의존하지 않으며, 단순한 논리 버그입니다. 2017 년 이후 대부분의 인기 있는 Linux 배포판이 영향을 받으며, Ubuntu(24 와 26), Arch, RHEL, OpenSUSE, CentOS Stream, Fedora, Alma 를 포함한 것이지만 그로만 국한되지 않습니다. 우리는 WSL2 도 직접 테스트했으며, 확실히 "루트"라는 단어가 나왔습니다.
Dirty Frag 은 친척을 능가하며, 작성 시점에 현재 패치가 zero 개이며, 이는 매우 위험합니다. 심지어 메인라인 Linux 커널 자체도 패치가 없는 것으로 보입니다. 한 동료는 CachyOS 기계 (kernel 7.0.3-1-cachyos) 와 업데이트된 Arch 박스에서 성공적으로 공격을 트리거했다고 보고했습니다. 말할 것도 없이, 업데이트와 패치가 제공되는 즉시 서버를 패치하세요.
그런데 다행히도, 완화는 매우 쉽고 대부분의 서버 기능에 영향을 미치지 않을 것으로 보입니다. esp4, esp6, rxrpc 모듈을 비활성화하면 됩니다. 이들은 IPSec 네트워킹과 관련이 있으며, 해당 기계가 IPSec 클라이언트 또는 서버가 아닌 한 사용되지 않을 가능성이 높습니다. 다음 명령어로 해당 모듈을 비활성화할 수 있습니다:
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
Dirty Frag 가 모든 사람을 놀라게 하는 이유는, 취약점이 4 월 30 일 Linux kernel team 에 보고되었음에도 불구하고 "관련 없는 제 3 자"가 공개를 위한 잠정 금지 (embargo) 를 위반했기 때문입니다. 웹사이트는 추가 세부 사항을 제공하지 않지만, 우리의 가장 좋은 이론은 악의적인 행위자들이 이미 이 공격을 사용하고 있다는 것을 시사하여 잠정 금지 위반이 이루어졌다는 것입니다. 당신의 박스 (boxen) 를 테스트하고 싶다면 다음 명령어를 사용할 수 있습니다:
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
기술적 세부 사항에 관해 이야기하면, Copy Fail 과는 큰 차이가 없으며, 페이지 캐시 설명자 (page cache descriptor) 를 이를 통해 스플라이 (splice) 하여 제로 복사 (zero-copy) 작업을 악용하는 방식입니다. 차이는 이번에는 실패할 수 있는 코드가 IPSec 관련 모듈에 있다는 것입니다. 원래 취약점은 2017 년 커널 커밋 cac2661c53f3 에서 도입된 "xfrm-ESP Page Cache Write"이며, 대부분의 배포판에서 존재합니다*. Ubuntu 시스템의 AppArmor 가 해당 구멍을 막기 때문에, PoC 는 두 번째 공격인 "RxRPC Page-Cache Write"를 연쇄합니다. 이는 2018 년 커밋 2dc334f1a63a 에서 추가되었습니다.
Google News 에 Tom's Hardware 를 팔로우하거나, 선호하는 소스로 우리를 추가하여 최신 뉴스, 분석 및 리뷰를 구독하세요.
Bruno Ferreira 는 Tom's Hardware 의 기여 작가입니다. 그는 PC 하드웨어와 다양한 sundries 와 개발자 경력에 수십 년의 경험을 가지고 있습니다. 그는 세부 사항에 집착하며 좋아하는 주제에 대해 이야기할 때 늘어놓는 경향이 있습니다. 그렇지 않을 때는 게임을 하거나 라이브 음악 쇼나 페스티벌에 참석합니다.
다시 말하면, 이는 로컬 공격입니다. 이는 제목에 명시되어야 할 내용인데, 현재 제목은 너무 경고를 줍니다. 이는 두 번째 단락에서 언급됩니다. Reply
네, 그것은 나쁜 것입니다 (주요 이유는 패치가 완전히 나오기 전에 게시되었기 때문입니다, 우리는 많은 권한 상승 공격을 보았습니다). 그러나 Copy Fail exploit 에 관한 스레드에서, 일부 사람들은 취약점이 직접적으로 루트 접근을 허용한다는 잘못된 인상을 가지고 있었습니다.
사람들을 오도하지 않도록 주의하세요. 제목이 이를 권한 상승 공격 (privilege-escalation exploit) 로 기술하는 것이 좋으며, 이것이 일반적인 설명 방식입니다.
Reply
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
Tom's Hardware*가 정말로 사람들이 Github 저장소에서 코드를 직접 다운로드하고, 빌드하며, 실행하길 추천하고 싶다고 확신하는지 정말로 궁금합니다.*저는 이 저장소가 매우 신뢰할 수 있는 출처에서 온 것으로 검증되었다고 가정하겠습니다. 하지만 추가적인 검증을 하지 않고 저장소에서 코드를 바로 실행하라고 사람들에게 알려주는 것은 두 번째 리눅스 제로데이 (Linux zero day) 를 연속으로 떨어뜨린 기사에 사람들이 하는 것을 추천하고 싶지 않은 것 같아 보입니다.
응, 저는 해당 저장소를 링크만 해달라고 생각합니다. README 가 있다면 실행 방법을 설명하고 있습니다. 누군가가 선택한다면 그렇게 할 수 있습니다. 하지만, 소스 코드를 브라우징하여 연구할 수도 있습니다.chaos215bar2 님이 말했습니다:Tom's Hardware가 정말로 사람들이 Github 저장소에서 코드를 직접 다운로드하고, 빌드하며, 실행하길 추천하고 싶다고 확신하는지 정말로 궁금합니다.
- 해당 것은 로컬에만 국한되지 않습니다. 원격으로 접근할 수 있는 모든 사용자가 리눅스 장치를 원격으로 실행할 수 있습니다. 이는 많은 수의 리눅스 장치를 설명합니다. 다른 소프트웨어가 실행되고 있는 시스템도 영향을 받을 수 있으며, 그 맥락에서 코드를 실행할 수 있게 하는 가능한 취약점이 있을 수도 있습니다. 이를 과소평가하려는 것은 위험하다고 생각합니다 (imho). 이는 가정에서 유일한 취미 충족을 위한 리눅스 설치를 가진 사람에게는 훨씬 적은 의미가 될 것입니다. 그래서 그들은 가정에서 리눅스 설치가 있다고 말할 수 있습니다. 그러나, 이는 많은 장치와 기업 리눅스 환경을 영향을 미칩니다.
Tom's 가 수정을 게시했다는 것을 좋아합니다.
나는 리눅스를 거의 실행하지 않습니다. 가끔만 확인하기 위해 사용합니다. 거의 모든 것을 알지 못하지만, 그 줄을 복사/붙여넣기하여 자신을 안심할 수 있는 문제없이 할 것입니다.
로컬/원격이라는 것이 실제로 구분하려는 것은 인증 여부를 말입니다. 로그인되지 않은 사람이 있고, 인증된 사용자가 임의의 코드를 실행할 수 있는 방법을 갖지 않는 사람은 이 악용을 적용할 수 없습니다.ThisIsMe 님이 말했습니다:
- 해당 것은 로컬에만 국한되지 않습니다. 원격으로 접근할 수 있는 모든 사용자가 리눅스 장치를 원격으로 실행할 수 있습니다.
네, 원격 접근 취약점이 존재하여 원격의 인증되지 않은 행위자에게 접근 권한 또는 실행 권한을 부여할 수 있다면, 해당 원격 접근 또는 코드 실행 취약점을 권한 상승 (privilege-escalation) 과 결합할 수 있습니다. ThisIsMe 는 다음과 같이 말했습니다: "이것은 다른 소프트웨어가 실행되고 있으며, 그 컨텍스트 내에서 코드를 실행할 수 있는 가능한 취약점이 존재하는 시스템에도 영향을 줄 수 있습니다."
AI 자동 생성 콘텐츠
본 콘텐츠는 Tom's Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기