
Linux 커널 Fragnesia CVE-2026-46300에 대한 탐지 전용 로컬 트리아지 스캐너: 실행 중이거나 설치된 커널을 업스트림 및 배포판 수정 빌드와 비교하여 등급을 매깁니다. 페이로드 없음, 네트워크 없음.
fragnesia-scannerLinux 커널 권한 상승 CVE-2026-46300인 Fragnesia에 대한 로컬 트리아지. 소유한 커널 버전을 입력하면 해당 빌드가 여전히 취약한지 알려주며, 버전 확인을 속이는 함정까지 잡아낸다. 네트워크에 절대 접속하지 않고, 익스플로잇을 로드하지 않으며, 버그를 트리거하지도 않는다.
취약점세부 정보 | 값 |
|---|---|
CVE | CVE-2026-46300, 별칭 Fragnesia, Dirty Frag 변종 |
버그 | skb_try_coalesce()가 공유 프래그 마커를 누락시켜, ESP-in-TCP 입력이 페이지 캐시 페이지 위에서 제자리 복호화를 수행함 (CWE-456) |
영향 | 로컬 사용자가 읽기만 가능한 파일의 캐시된 내용을 덮어쓸 수 있음. 공개된 개념 증명은 /usr/bin/su의 캐시된 사본을 대상으로 하므로, 해당 프로그램을 다음에 실행할 때 공격자 코드가 root로 실행됨 |
심각도 | 7.8 높음, 커널 CNA와 NVD가 산정 (AV:L/AC:L/PR:L/UI:N) |
악용 | 2026-10-28에 CISA KEV에 추가됨, 연방 기한 2026-10-31, 포렌식 트리아지 대상으로 표시됨. CISA 항목에 따르면 PHP2Shell 취약점과 연쇄되어 PHP 웹셸을 심고 root로 명령을 실행할 수 있음 |
연쇄 | Dream Security가 25개의 방화벽 어플라이언스를 루팅한 연쇄를 보고했으며, 여기에는 미국 정부 관련 네트워크의 시스템도 포함됨: PHP2Shell이 웹 사용자 권한으로 코드를 실행하고, Fragnesia가 이를 root로 승격시킴. SELinux 격리 환경에서도 가능한데, 파일시스템에 쓰기 접근을 요청하지 않기 때문임 |
Fragnesia는 원격 공격이 아니다. 네트워크만으로 서버를 공격하는 데 사용되는 것이 아니다. 이미 머신에서 실행 중인 코드가 필요하며, 이는 정확히 웹셸, 탈취된 SSH 로그인, 또는 침해된 CI 작업이 제공하는 것이다. 그래서 foxcornlab/php2shell-scanner와 짝을 이룬다: PHP 측은 그쪽에서, 커널 측은 여기서 평가하라.
수정된 버전업스트림 안정 (수정 커밋 f84eca581739)계열 | 수정 버전 |
|---|---|
7.0 | 7.0.10 |
6.18 | 6.18.33 |
6.12 | 6.12.91 |
6.6 | 6.6.141 |
6.1 | 6.1.174 |
5.15 | 5.15.208 |
5.10 | 5.10.257 |
7.1 이상 | 영향 없음 |
3.9 이전 | CVE 기록에 따라 영향 없음 |
기타 다른 계열 (예: 6.17, 6.5) | 업스트림 수정 릴리스 없음, 수정된 계열로 이동 |
Ubuntu (정확한 수정 빌드)릴리스 | 수정 빌드 |
|---|---|
26.04 | 7.0.0-22.22 |
25.10 | 6.17.0-35.35 |
24.04 | 6.8.0-124.124 |
22.04 | 5.15.0-181.191 |
20.04 표준 5.4 커널 | Ubuntu에서 영향 없음으로 표시됨 |
20.04 5.15 HWE 커널 | Ubuntu Pro 전용, Pro 권고 확인 |
Debian (정확한 수정 빌드)릴리스 | 수정 빌드 |
|---|---|
13 trixie | 6.12.90-1 (DSA-6295-1) |
12 bookworm | 6.1.174-1 (DSA-6306-1) |
11 bullseye | 5.10.257-1 (DLA-4606-1) |
RHEL 및 파생 배포판스트림별로 RHSA-2026:19521 이후를 참조하라. 이 도구는 RHEL 호스트를 업스트림 수정 기준으로 평가하고 권고를 명시하는데, Red Hat이 이 도구가 평가할 수 있는 단일 버전 번호를 게시하지 않기 때문이다.
출처가 불일치하는 부분두 가지 불일치가 있으며, 둘 다 의도적으로 특정 출처를 따랐다. 10월 28일 KEV 업데이트에 대한 한 2차 기사에서는 이 CVE의 점수를 2.7로 표기하는데, 이는 같은 업데이트의 VMware ESX 점수를 커널 항목에 잘못 옮긴 것이다. NVD, 커널 CNA, Red Hat 모두 7.8이라고 하므로 이 도구는 7.8을 따른다. 두 번째: NVD의 5.10 계열 범위는 5.10.257까지인 반면, 업스트림 기록과 Debian은 모두 5.10.257-1을 수정 빌드로 나열한다. 이 도구는 업스트림과 Debian을 따르며 5.10.257을 수정된 것으로 평가한다.
함정 1: uname은 업로드 번호를 숨긴다Ubuntu의 24.04 고정 빌드는 6.8.0-124.124입니다. uname -r은 6.8.0-124-generic을 출력합니다. 두 번째 점 뒤의 업로드 번호는 uname 출력에 절대 나타나지 않으므로, 실행 중인 커널의 ABI가 고정된 ABI와 일치하는 경우 uname만으로는 이를 판별할 수 없습니다. 이 도구는 해당 사례를 clean이 아닌 UNKNOWN으로 판정하며, 설치된 linux-image 패키지 버전을 확인하라고 안내합니다. 고정된 ABI보다 낮은 ABI는 확실히 VULNERABLE이고, 그보다 높은 ABI는 FIXED입니다. 확정적인 판정을 받으려면 dpkg 버전과 함께 --package-version을 전달하세요.
함정 2: 설치됨은 부팅됨이 아니다고정된 커널 패키지가 설치되어 있지만 실행 중이 아니라면 아무 효과가 없습니다. --local은 실행 중인 커널을 가장 최근에 설치된 커널 패키지와 비교하고, 둘이 다를 경우 이를 명확히 알려주며, 커널 업데이트가 대기 중일 때 /var/run/reboot-required를 표시합니다.
함정 3: 증거는 디스크가 아니라 메모리에 있다Fragnesia는 커널의 페이지 캐시에 기록하며 디스크는 건드리지 않습니다. 재부팅은 백도어와 증거를 함께 지웁니다. 호스트가 침해되었다고 의심된다면 무엇이든 재시작하기 전에 먼저 확인하세요: 파일에 대한 일반 읽기를 캐시를 우회하는 직접 읽기와 비교하고, 필요한 것을 먼저 수집하세요. 재부팅 후 저장된 파일만 해시하는 파일 무결성 도구는 이를 놓칩니다.
검사 항목사용자가 제공한 커널 버전(--kernel), 업스트림 수정 테이블에 대조하여 판정Ubuntu 릴리스(--ubuntu 24.04), 위의 ABI 함정 적용, 또는 확정적 판정을 위한 --package-versionDebian 릴리스(--debian bookworm), 설치된 패키지 버전 기준 (Debian uname 문자열은 ABI 번호만 포함하므로 그 자체로는 UNKNOWN으로 판정됨)이 호스트(--local): 실행 중인 커널, os-release, 가장 최근에 설치된 커널 패키지, 로드된 ESP 모듈(esp4, esp6, rxrpc), 재부팅 필요 플래그, 그리고 PHP 설치 여부(별도로 판정, 아래 참조)ESP 모듈 존재 여부: esp4/esp6가 로드된 취약한 커널은 현재 도달 가능한 경로가 활성화되어 있음사용법# grade one version
python3 fragnesia_scanner.py --kernel 6.6.140
# Ubuntu 24.04, uname only (ABI match -> UNKNOWN, upload hidden)
python3 fragnesia_scanner.py --ubuntu 24.04 --kernel 6.8.0-124-generic
# Ubuntu 24.04, definitive grade from the installed package
python3 fragnesia_scanner.py --ubuntu 24.04 --kernel 6.8.0-124-generic --package-version 6.8.0-124.124
# Debian bookworm from the installed package
python3 fragnesia_scanner.py --debian bookworm --package-version 6.1.174-1
# this host, everything at once
python3 fragnesia_scanner.py --local
# machine-readable output for fleets
python3 fragnesia_scanner.py --local --json
종료 코드: 0 = 취약한 항목 없음, 2 = 취약한 항목 발견, 1 = 스캔 오류. UNKNOWN은 종료 코드를 변경하지 않지만, 깨끗한 상태도 아니다.
체인의 PHP 절반--local이 호스트에서 PHP를 발견하면 그 사실을 알리고 PHP 등급을 위해 foxcornlab/php2shell-scanner를 가리킨다. 이 도구는 의도적으로 PHP 자체를 등급화하지 않는다. 해당 스캐너가 이미 PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 수정 테이블을 담당하고 있으며, 하나의 도구가 하나의 수정 테이블을 담당하는 것이 두 도구가 서로 어긋나는 것보다 낫다.
오늘 패치할 수 없는 경우의 완화 조치modprobe install 규칙으로 esp4 및 esp6 모듈을 차단하고 언로드한다. 이렇게 하면 호스트의 IPsec이 꺼지므로 VPN 게이트웨이에서는 사용하지 말아야 한다. 이는 임시 방편일 뿐 수정이 아니다. 커널을 패치하고 그 커널로 재부팅하라.
테스트python3 -m unittest discover -s tests -v
19개 테스트: 모든 수정된 라인에 대한 업스트림 경계, 세 방향 모두에서의 Ubuntu ABI 함정, Debian 패키지 비교, 20.04 특수 사례, RHEL 권고 노트, 그리고 네 가지 문자열 형태 모두에 대한 버전 파싱.
Thanks to2026년 5월 13일에 Fragnesia를 공개한 William Bowling과 V12 팀WizPHP2Shell + Fragnesia 연쇄 공격을 문서화한 Dream SecurityKEV 등재와 연쇄 공격 관련 노트를 제공한 CISACNA 기록을 제공한 Linux 커널 팀Disclaimer방어적 트리아지만을 위한 도구입니다. 이 도구는 버전 문자열을 확인하고 커널 빌드가 수정된 범위에 속하는지 보고합니다. 트래픽을 전송하지 않고, 취약점을 트리거하지 않으며, 사용 중인 배포판의 권고를 대체하지 않습니다. 소유하거나 감사 권한이 있는 시스템에서만 사용하십시오.
Vineeth Kumar(foxcornlab)의 연구입니다. 버그를 발견했거나 기능을 원하시면issue를 열어주세요.