
리눅스 eBPF 서브시스템과의 상호작용을 보여주는 연구 구현 (CVE-2021-3490 관련). BPF 맵 생성, 시스템 호출 래퍼, 네임스페이스 설정, 검증기 분석을 포함합니다. 교육 및 보안 연구 목적으로만 사용하세요.
Linux eBPF 서브시스템과 CVE-2021-3490 관련 상호작용을 보여주는 연구 구현입니다. BPF 맵 생성, syscall 래퍼, 네임스페이스 설정, 검증기 분석을 포함합니다. 교육 및 보안 연구 목적으로만 사용하세요.
CVE-2021-3490 – eBPF 검증기 경계 추적 분석
이 저장소는 CVE-2021-3490( eBPF 검증기에서 32비트 경계 추적 오류와 관련된 취약점 ) 과 관련하여 Linux 커널 eBPF 서브시스템을 탐구하는 C 구현을 포함합니다.
이 프로젝트의 목표는 bpf() 시스템 콜이 내부적으로 어떻게 동작하는지, BPF 맵이 사용자 공간에서 어떻게 생성 및 관리되는지, 검증기가 레지스터 제약 조건을 어떻게 처리하는지 이해하는 것입니다. 이는 커널 내부 및 보안 분석에 초점을 맞춘 연구 및 학습 프로젝트입니다.
이 코드는 프로덕션 환경에서 사용되지 않습니다.
eBPF를 사용하면 사용자 공간 프로그램이 검증된 바이트코드를 Linux 커널에 로드할 수 있습니다. 실행 전에 커널 검증기는 프로그램이 다음을 확인합니다.
취약한 커널 버전에서 검증기는 특정 ALU 연산 중 32비트 경계를 잘못 추적했습니다. 이 결함으로 인해 조작된 프로그램이 검증 로직을 우회할 수 있습니다.
공식 세부 정보:
이 구현은 다음에 중점을 둡니다.
이는 사용자 공간이 커널 BPF 인프라와 상호작용하는 방식을 이해하는 데 도움을 주기 위해 설계되었습니다.
이 저장소는 자동화된 익스플로잇 페이로드 로직을 포함하지 않습니다.
다음 명령으로 커널 버전을 확인할 수 있습니다.
uname -r
패치되었거나 최신 커널에서는 동작이 다를 수 있습니다.
GCC를 사용하여 컴파일합니다.
gcc -o exploit exploit.c -lpthread
표준 Linux 헤더 외에 외부 라이브러리는 필요하지 않습니다.
프로그램을 실행합니다.
./exploit
프로그램은 다음을 수행합니다.
이 프로젝트는 다음을 위한 것입니다.
적절한 승인 없이 이 코드를 시스템에서 실행하지 마십시오.
이 프로젝트를 통해 다음을 이해할 수 있습니다.