Dirty Frag: 범용 Linux 로컬 권한 상승 취약점

Linux 커널은 범용 로컬 권한 상승(LPE) 취약점인 "Dirty Frag"의 발견으로 다시 한번 중대한 보안 과제에 직면했습니다. 이 결함은 권한이 없는 사용자가 모든 주요 Linux 배포판에서 root 권한을 획득할 수 있게 하며, 이는 이전의 "Copy Fail" 취약점의 영향과 유사합니다.

Dirty Frag가 특히 위험한 이유는 페이지 캐시(page cache)를 타겟팅할 수 있는 능력 때문입니다. 이를 통해 공격자는 디스크에 필요한 쓰기 권한이 없더라도 메모리 내의 중요한 시스템 바이너리나 설정 파일을 수정할 수 있습니다. 이 취약점은 엠바고(embargo)가 깨진 후 공개되었기 때문에, 초기에는 즉각적인 패치나 CVE가 제공되지 않은 상태로 커뮤니티에 영향을 미쳤습니다.

공격 메커니즘

Dirty Frag는 단일 버그가 아니라 두 개의 별개 취약점이 체인으로 연결된 것입니다. 이는 아주 적은 수의 사용자층에서만 사용됨에도 불구하고 많은 배포판에서 기본적으로 활성화되어 있는 모호한 소켓 주소 체계(socket address families)와 커널 모듈을 활용합니다.

ESP 경로

하나의 주요 벡터는 esp4esp6 모듈을 포함합니다. 이를 악용하면 공격자는 타겟 바이너리의 페이지 캐시를 덮어쓸 수 있습니다. 제공된 개념 증명(PoC)에서 공격자는 /usr/bin/su를 타겟으로 합니다. 바이너리의 페이지 캐시 첫 160바이트를 최소한의 x86_64 root-shell ELF로 덮어씀으로써, 공격자는 원래 인증이 필요한 su 명령어를 즉시 /bin/sh를 root 사용자로 실행하는 도구로 변신시킵니다.

RxRPC 경로

대체 수단으로서(특히 다른 경로가 샌드박스 처리된 Ubuntu와 같은 시스템에서), 이 익스플로잇은 rxrpc(및 rxkad) 모듈을 타겟으로 합니다. 이 경로는 /etc/passwd의 root 엔트리를 패치하기 위해 더 복잡한 프리미티브(primitive)를 사용합니다.

구체적으로, "three-splice" 기술을 사용하여 root 사용자의 엔트리를 빈 비밀번호 필드와 /bin/bash로 설정된 쉘을 갖도록 수정합니다. 많은 시스템이 pam_unix.so nullok로 구성되어 있기 때문에, 빈 비밀번호 필드는 공격자가 아무런 비밀번호도 제공하지 않고 su -를 실행하여 root 권한을 획득할 수 있게 합니다.

공개 논란

Dirty Frag의 출시는 책임 있는 공개 프로세스의 붕괴로 특징지어집니다. 공개 타임라인은 다음과 같습니다:

  • 2026년 4월 29일: 연구원이 RxRPC 취약점과 무기화된 익스플로잇을 security@kernel.orgnetdev 메일링 리스트에 제출했습니다.
  • 2026년 5월 7일: 5일간의 엠바고 조건 하에 linux-distros 메일링 리스트와 정보가 공유되었습니다.
  • 2026년 5월 7일: 관련 없는 제3자가 ESP 취약점에 관한 정보를 공개적으로 출시하여 엠바고를 깨뜨렸습니다.
  • 2026년 5월 7일: 엠바고 위반 이후, 연구원은 Dirty Frag의 전체 문서와 익스플로잇 코드를 공개했습니다.

기술적 통찰 및 커뮤니티 반응

보안 커뮤니티는 이러한 유형의 취약점들에서 반복되는 패턴을 주목하고 있습니다. "Dirty Pipe"에서 "Copy Fail"을 거쳐 현재의 "Dirty Frag"로의 전환은 페이지 캐시 페이지에 대한 읽기 전용 보호가 여전히 취약하다는 것을 시사합니다.

AI의 취약점 연구에서의 역할

일부 연구원들은 이 분야에서 대규모 언어 모델(LLM)의 사용에 관한 논쟁을 불러일으켰습니다. 한 댓글 작성자는 AI가 즉각적인 답변을 제공할 수는 있지만, 연구의 "탐색" 단계를 방해할 수 있다고 언급했습니다:

"AI를 사용하여 취약점 연구를 수행하는 것은 제 창의성을 정말로 방해합니다... 주변에 무엇이 있는지 볼 수 없게 만듭니다. 그것은 마치 지니(genie)와 같습니다 - 당신이 요청한 것만 정확히 얻고 그 이상은 얻지 못합니다."

반대로, 다른 이들은 LLM이 패치를 역공학하여 무기화된 익스플로잇로 만드는 속도를 가속화하여, 전통적인 "조용한 패치(quiet patch)" 모델을을 무용지물로 만든다고 주장합니다.

배포판 기본 설정

사용자의 0.1% 미만이 사용하는 선택적 커널 기능이 왜 주요 배포판에서 기본적으로 활성화되어 있는지에 대한 상당한 비판이 있습니다. 이러한 기본 커널 설정의 "블로트(bloat)"는 LPE를 위한 공격 표면을 공격 표면을 크게 증가시킵니다.

완화 및 방어

모든 배포판에 공식 패치가 완전히 배포될 때까지, 다음과 같은 몇 가지 완화 전략이 권장됩니다:

1. 취약한 모듈 비활성화

사용자는 영향을 받는 모듈을 수동으로 비활성화하여 익스플로잇 벡터를 차단할 수 있습니다:

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"

2. unprivileged user namespaces 제한

많은 익스플로잇은 네트워크 네임스페이스 내에서 필요한 권한(예: CAP_NET_RAW)을 획득하기 위해 unprivileged user namespaces에 의존합니다. 이 기능을 비활성화하면 ESP 및 RxRPC 경로를 모두 차단할 수 있습니다:

echo 1 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns

참고: 이 작업은 현대적인 웹 브라우저에서 사용하는 것과 같은 일부 애플리케이션 샌드박스를 깨뜨릴 수 있습니다.

3. 미니멀리스트 커널 사용

이번 사건은 배포판들이 더 맞춤화된 접근 방식을 채적용하여, 미니멀리스트 커널을 기본으로 제공하고 사용자가 필요할 때만 명시적으로 특수 네트워크 모듈을를 통해 네트워크 모듈을 활성화하도록 요구하는 방식으로 전환해야 한다는 요구를 다시 한번 불러일으켰습니다.

Sources