CVE-2015-5287: Red Hat ABRT symlink 권한 상승, CISA KEV 등재가 의미하는 것

CVE-2015-5287은 ABRT가 제공하는 커널 호출 coredump 프로세서의 결함이다. 코어덤프를 ABRT 덤프 디렉터리(/var/spool/abrt)에 기록할 때 심볼릭 링크를 올바르게 처리하지 못하는데, ABRT 문제 디렉터리에 쓰기 권한이 있는 로컬 공격자가 예측 가능한 파일 경로를 symlink로 대체하면 root 권한으로 실행되는 쓰기가 공격자가 지정한 위치를 따라가게 된다. 로컬 권한 상승으로 이어진다는 것이 핵심 의미다. 2026년 8월 26일 CISA Known Exploited Vulnerabilities(KEV) 카탈로그에 등재되면서, 이 취약점은 단순 과거 CVE가 아니라 현재까지 대응이 요구되는 활성 위협 항목으로 분류되었다.

Red Hat Customer Portal 공식 CVE 페이지의 설명도 같다. 이 취약점은 ABRT의 커널 호출 coredump 프로세서가 코어덤프 파일을 ABRT 덤프 디렉터리에 기록하는 과정에서 symlink를 적절히 처리하지 못해 생긴다. ABRT 문제 디렉터리에 쓰기 권한이 있는 로컬 공격자에게는 이 결함으로 권한을 상승시킬 길이 열린다. Red Hat은 추가 정보로 Bugzilla 1266837(“abrt: incorrect permissions on /var/spool/abrt”)를 연결했고, 취약점 보고자로 Philip Pettersson(Samsung)을 명시했다.

CVE 기록에는 CWE-59 분류가 언급돼 있지만, CWE-59의 정확한 명칭 표기와 CVSS 3.1 세부 메트릭 구성은 현재 확인된 인용에서 직접 나오지 않는다. 확인 가능한 스코어링은 CVSS v2 기준이며, Red Hat과 NVD 모두 Base Score 6.9(Moderate)를 부여했다. 공격 벡터 역시 AV:L/AC:M/Au:N/C:C/I:C/A:C(로컬 공격)으로 동일하다.

symlink 권한 상승 공격의 전제조건은 세 가지다. 첫째, ABRT 또는 sosreport가 크래시 처리 중 dump 디렉터리를 생성하는 동작을 수행한다. 둘째, 공격자에게 해당 디렉터리 구조에 symlink를 배치할 수 있는 로컬 권한이 있다. 셋째, 대상 환경이 RHEL 7.0/7.1이다.

PoC 실행 로그를 보면 sosreport 시나리오에서 크래시 처리 중 생성되는 dump 디렉터리(예: /var/tmp/abrt/ccpp-2015-11-3)를 대상으로 공격이 작동한다. 공격자는 이 예측 가능한 경로 아래에 symlink를 미리 심어 두고, ABRT coredump 프로세서가 해당 경로를 root 권한으로 열어 쓸 때 symlink가 가리키는 다른 파일을 덮어쓰도록 유도한다. KEV 카탈로그 원문은 이 과정을 “예측 가능한 이름의 파일에 대한 symlink 공격으로 특정 권한을 가진 로컬 사용자가 권한을 획득할 수 있다”고 기술한다.

핵심은 파일 이름의 예측 가능성이다. ABRT coredump 프로세스는 크래시 발생 시 예측 가능한 이름(예: ccpp-YYYY-MM-DD 형식의 날짜 포함 경로)으로 파일을 생성한다. 공격자가 미리 목표 경로를 symlink로 대체해 두면 root 권한의 쓰기가 공격자가 제어하는 대상 파일을 향하게 된다.

공식 패치가 보여주는 근본 원인: unlink와 O_EXCL로 바뀐 abrt-hook-ccpp.c

CISA KEV 항목이 참조하는 업스트림 ABRT 수정 커밋(3c1b60cfa62d39e5fff5a53a5bc53dae189e740e)은 이 결함의 구조적 원인을 명확히 보여준다. src/hooks/abrt-hook-ccpp.c의 diff에서 기존 코어덤프 파일 오픈 방식은 다음과 같았다.

int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_TRUNC, 0600);

이 방식은 기존 파일이 symlink여도 그대로 따라가 truncate한다. 수정 커밋은 이 부분을 아래처럼 바꿨다.

unlink(path);
int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_EXCL, 0600);

unlink(path)로 기존 파일을 먼저 지우고, O_EXCL 플래그로 새 파일만 생성하게 만들었다. 공격자가 미리 심어 둔 symlink를 root 권한 쓰기가 따라가지 못하도록 구조적으로 차단한 셈이다. 커밋 제목도 “ccpp: save abrt core files only to new files”로, 예측 가능한 coredump 파일 경로를 symlink로 바꿔 root 권한 쓰기를 유도하는 공격 경로를 근본적으로 끊는 수정임을 명시한다.

공개 PoC 분석: Exploit-DB 38832의 abrt/sosreport 경로와 modprobe 덮어쓰기

Exploit-DB 38832에 공개된 PoC는 RHEL 7.0/7.1에서 abrt/sosreport 경로를 이용한 로컬 권한 상승(root 획득)을 시연한다. 작성자는 rebel, 등록일은 2015-12-01이다. 실행 예시 출력을 보면 PoC는 /var/tmp/abrt/ccpp-* 덤프 디렉터리 내 sosreport 처리 중 sos_logs/sos.log, ui.log를 /proc/sys/kernel/modprobe로 symlink(os.symlink)로 생성해 modprobe 경로를 덮어쓰고, 최종적으로 uid=0(root)와 “Red Hat Enterprise Linux Server release 7.1 (Maipo)”를 확인하는 시퀀스를 보여준다.

다만 이 PoC 코드 상단 주석에는 “CVE-2015-5287 (?)”라는 표기가 있어, 작성자가 이 취약점과의 직접적 연결을 단정하지 않은 태도가 엿보인다. 같은 Exploit-DB 페이지의 공식 CVE 메타데이터 필드는 CVE-2015-5287로 연결된다. 그래서 본 문서에서는 EDB 페이지의 공식 CVE 필드를 기준으로 해당 PoC를 CVE-2015-5287의 활용 흔적으로 서술하되, 코드 주석의 “(?)” 표기가 존재한다는 점을 참고로 남긴다.

oss-security 메일링 리스트(20151201) 제목에는 CVE-2015-5273과 CVE-2015-5287이 함께 언급되며, 제목이 “abrt local root 취약점이 Centos/Fedora/RHEL에 걸쳐 공유된 기록”이다. 이 제목은 여러 배포판 이름이 함께 표시된다는 사실만 보여준다. 각 배포판에 대한 영향 범위나 세부 동작이 개별적으로 확정된 것은 아니다.

영향 범위와 수정 이력: RHEL 7 abrt/libreport, RHSA-2015:2505

Red Hat Customer Portal의 Affected Packages and Errata 섹션에서 확인되는 공식 영향 범위는 다음과 같다.

플랫폼 패키지 상태 수정 자문 수정일
Red Hat Enterprise Linux 7 abrt Fixed RHSA-2015:2505 2015-11-23
Red Hat Enterprise Linux 7 libreport Fixed RHSA-2015:2505 2015-11-23
Red Hat Enterprise Linux 6 abrt Not affected

RHSA-2015:2505는 RHEL 7 Server 대상의 abrt-2.1.11-35.el7 SRPM을 포함하는 Red Hat 보안 자문이다. 취약점 공개일도 2015년 11월 23일로, 수정 자문 발행일과 같다.

RHEL 7.2 이상 또는 el6/el8 계열까지의 적용 범위는 현재 확인된 증거에 명시돼 있지 않아, 해당 플랫폼으로 확장 해석하지 않는다. RHSA-2015:2505 이후 추가된 Red Hat 보안 자문에서 CVE-2015-5287이 최종적으로 수정된 abrt 버전에 대한 추가 정보도 현재 증거에서는 확인되지 않는다. 운영 중인 시스템의 실제 패치 상태는 rpm -q abrt libreport 명령으로 직접 확인해야 한다.

CISA KEV 등재(2026-08-26)의 의미와 2026-09-09 조치 기한

CISA KEV 카탈로그에는 CVE-2015-5287이 “Red Hat Automatic Bug Reporting Tool Privilege Escalation Vulnerability”로 등재돼 있다. 등재일(Date Added)은 2026-08-26, 연방 기관 대상 조치 기한(Due Date)은 2026-09-09이다. Known To Be Used in Ransomware Campaigns 항목은 “Unknown”, Forensic triage required per BOD-26-04는 “No”로 표기돼 있다.

KEV 카탈로그 원문에는 “The impacted product(s) could be end-of-life (EoL) and/or end-of-service (EoS)”라는 문장도 들어 있다. RHEL 7.0/7.1처럼 더 이상 정기 보안 업데이트가 제공되지 않는 환경에서는 패치 적용이 사실상 불가능할 수 있다는 전제의 대응을 요구하는 대목이다. KEV 등재 사실 자체가 연방 기관 대상 우선 대응 항목 분류의 근거가 되고, 운영 환경에서도 패치 우선순위 판단의 기준이 된다.

다만 KEV 카탈로그에는 악용 사실 등재만 있을 뿐, 누가 언제 실제 익스플로이트를 수행했는지 같은 개별 인시던트 세부 정보는 확인되지 않는다. 확인된 KEV 등재의 정확한 날짜는 2026-08-26이며, 본 문서 기준일(2026-08-28)로부터 2일 전 등재에 해당한다.

기존 시스템 점검 체크리스트: EoL 대응과 지원 버전 전환

RHEL 7 계열 서버에서 ABRT 또는 sosreport가 설치된 환경이라면 2026-08-28 기준 아래 항목을 점검할 것을 권한다.

  1. 패치 상태 확인: rpm -q abrt libreport로 현재 설치 버전을 확인하고, abrt-2.1.11-35.el7 이상 또는 이후 업데이트가 적용됐는지 확인한다.
  2. 사양 수명(EoL) 상태 점검: RHEL 7.0/7.1 환경(PoC가 명시하는 대상)은 더 이상 Red Hat 정기 보안 업데이트 대상이 아닐 수 있다. KEV 항목에 EoL/EoS 경고가 포함됐다는 점을 고려해 해당 노드가 지원 수명 내외에 있는지 점검한다.
  3. ABRT/sosreport 필요성 재평가: coredump 자동 수집이 실제 운영에 필수적인지 검토한다. 불필요하다면 ABRT 서비스 또는 sosreport를 비활성화/제거해 공격 표면 자체를 없애는 것이 가장 근본적인 대응이다.
  4. dump 디렉터리 권한 감사: /var/spool/abrt 및 /var/tmp/abrt/ 하위 디렉터리의 소유자와 권한을 확인한다. 비root 로컬 사용자가 쓰기 접근 가능한 경로가 있으면 symlink 배치 전제조건이 충족된 상태이므로, 해당 권한을 root 소유(700)로 제한한다.
  5. modprobe 경로 무결성 확인: PoC가 /proc/sys/kernel/modprobe를 symlink로 덮어쓰는 시퀀스를 사용했다는 점을 고려해, 해당 경로의 현재 상태가 정상 커널 파라미터 파일인지 살펴본다.
  6. KEV 대응 일정 준수: 2026-09-09 조치 기한 이전에 패치 적용 또는 노출 제거를 마쳐야 한다. EoL 환경에서는 RHEL 7 최신 점버전 또는 지원 대상 버전으로의 전환 계획이 병행돼야 실질적 대응이 가능하다.
  7. CISA KEV 및 Red Hat 보안 자문 모니터링: RHSA-2015:2505 이후 추가 자문에서 CVE-2015-5287 관련 업데이트가 있는지, CISA KEV 카탈로그에서 추가 메모가 수정되는지 정기적으로 지켜본다.

본 문서에 기술된 모든 사실은 2026-08-28 기준 확인된 근거에 기반한다. 운영 환경의 실제 적용 여부와 패치 상태는 위 명령과 점검 항목으로 직접 확인한다.

댓글 남기기