[방어] 분석 — CVE-2025-68724
CVE-2025-68724 is a local Linux kernel integer‑overflow in asymmetric_key_generate_id that can lead to kernel buffer overflow and full system compromise; the highest‑priority immediate mitigation is to block unprivileged creation of asymmetric keys via sysctl limits.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00125 · 악용난이도 hard
🔍 공격 기법
- 비특권 사용자가
add_key,request_key혹은keyctl시스템 콜을 이용해 비정상적으로 큰 X.509 인증서 필드(예: ASN.1 INTEGER 시리얼 번호, issuer name)를 전달합니다. - 커널 내부에서
asymmetric_key_generate_id함수가 해당 길이를 합산할 때 정수 오버플로우가 발생하고, 이후 복사 과정에서 버퍼 오버플로우가 일어나면서 임의 코드 실행이 가능해집니다.
악용 가능성: 이 취약점은 AV:L/AC:L/PR:L/UI:N이라는 CVSS 벡터를 갖고 있으므로, 공격자는 로컬 시스템에 직접 접근해 낮은 권한(Low Privilege)만으로도 복잡도가 낮은(Low Complexity) 방법으로 실행할 수 있습니다. 다만 EPSS=0.00125라는 실측값과 KEV 미등재 상태는 현재까지 실제 악용 사례가 거의 없으며, 공개된 익스플로잇이 존재하지 않음을 의미합니다. 공격자는 로컬에서 keyctl·add_key와 같은 커널 키 관리 인터페이스를 호출하면서, 인위적으로 크기가 큰 X.509 인증서(예: ASN.1 INTEGER 시리얼 번호, 발급자 이름) 데이터를 전달해야 합니다. 이때 asymmetric_key_generate_id 함수가 블롭 길이와 asymmetric_key_id 구조체 크기를 합산할 때 정수 오버플로우가 발생하면 버퍼 복사가 넘어가 메모리 손상을 일으킬 수 있습니다. 따라서 공격 표면은 Linux 커널의 crypto 서브시스템과 이를 이용하는 사용자 공간 도구(예: ssh-keygen, gpg)에 국한되며, 네트워크를 통한 원격 접근 경로는 존재하지 않습니다. 결국 로컬 권한이 있는 사용자가 특수히 조작된 인증서 데이터를 제공할 수 있을 때만 실현 가능하므로 난이도는 “hard” 수준으로 평가됩니다.
💥 영향 분석
- 성공 시 커널 메모리를 손상시켜 루트 권한을 획득하거나, 시스템 전체에 대한 원격 코드 실행(RCE)으로 이어질 수 있습니다.
- 공격자는 로컬 계정만 있으면 특권 상승이 가능하므로, 내부 침투 단계에서 빠르게 전파될 위험이 존재합니다.
🔗 관련 취약점·체이닝
- 유사한 정수 오버플로우 기반 커널 취약점(CVE‑2024‑XXXX 등)과 연계해
keyctl파라미터 조작 → 메모리 손상 → 권한 상승 → 악성 모듈 로드 흐름을 구성할 수 있습니다.
🔎 탐지
- 로그 지표
auditd:type=SYSCALL msg=audit(...): arch=c000003e syscall=311 success=no exit=-EOVERFLOW a0=<key_type> a1=<payload_len>(311은add_key시스템 콜)kerneldmesg :"asymmetric_key_generate_id: integer overflow detected"(패치 적용 전후 차이 확인)
-
SIEM 탐지 규칙 예시 (Splunk/ELK 등)
- 대용량 키 생성 감지
1index=linux_audit sourcetype=auditd 2("syscall=311" OR "syscall=312") // add_key / request_key 3| eval payload_len=if(isnull(a1),0,a1) 4| where payload_len > 1048576 // 1 MiB 이상 5| table _time host pid uid payload_len- 오버플로우 반환값 탐지
1index=linux_audit sourcetype=auditd 2("exit=-EOVERFLOW") AND ("syscall"="311" OR "syscall"="312") 3| stats count by host uid pid- 정규식 기반 파일 무결성 로그 (auditctl)
auditctl -w /etc/ssl/certs -p wa -k cert_change로 인증서 디렉터리 변경 감시- 정규식:
.*(SerialNumber|Issuer)=.{0,10000}→ 비정상적으로 긴 필드가 기록될 경우 경보
- 오탐 튜닝
- 정상적인 대용량 키(예: 기업 내부 PKI에서 사용하는 4 MiB 인증서) 발생 시 허용 리스트에 UID 혹은 프로세스 이름을 추가.
payload_len임계값을 환경별 평균(보통 <64 KiB)보다 10배 이상으로 설정해 오탐을 최소화.
🛡️ 완화 방안
-
키 생성 파라미터 검증 강화
auditd규칙을 추가해payload_len> 1 MiB 인 경우 경보 발생 후 자동 차단(systemd서비스keyctl-block.service로 차단).- SELinux/AppArmor 프로파일에
add_key/request_key호출 시size제한 정책 삽입.
-
불필요한 비대칭 키 모듈 언로드
lsmod | grep asymmetric로 로드된 모듈 확인 후, 사용되지 않는 경우rmmod <module>실행.
-
구현 난이도: ★★★☆☆ (audit 규칙 작성·SELinux 정책 수정 필요)
-
운영 영향: 기존 정상적인 키 작업에 대한 로그가 증가하지만 서비스 가용성에는 큰 영향을 주지 않음.
-
검증 방법: audit 로그에서 차단 이벤트 발생 여부와 정상 서비스 동작 확인.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00125 · exploit=hard · in_scope=None