🇰🇷 한글 설명
OpenPrinting CUPS 2.4.16 이하 버전의 스케줄러(cupsd)에서 임시 프린터가 자동 삭제될 때 use-after-free 취약점이 존재합니다. 해제된 힙 메모리를 가리키는 댕글링 포인터가 여러 지점에서 역참조되어 cupsd 데몬이 충돌(서비스 거부)할 수 있으며, 힙 그루밍과 결합 시 코드 실행으로 악용될 가능성이 있습니다.
💡 쉬운 설명
프린터 관리 프로그램이 이미 지워진 정보를 다시 사용하려다 오류가 발생하는 결함입니다. 이로 인해 프린터 서비스가 멈추거나, 조건이 맞으면 공격자가 시스템을 조작할 수도 있습니다.
🇺🇸 원문 (English)
OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In versions 2.4.16 and prior, a use-after-free vulnerability exists in the CUPS scheduler (cupsd) when temporary printers are automatically deleted. cupsdDeleteTemporaryPrinters() in scheduler/printers.c calls cupsdDeletePrinter() without first expiring subscriptions that reference the printer, leaving cupsd_subscription_t.dest as a dangling pointer to freed heap memory. The dangling pointer is subsequently dereferenced at multiple code sites, causing a crash (denial of service) of the cupsd daemon. With heap grooming, this can be leveraged for code execution.
📍 영향받는 시스템
OpenPrinting CUPS 2.4.16 이하 버전이 설치된 Linux 및 Unix 계열 시스템
⚔️ 공격 벡터
임시 프린터 자동 삭제 과정에서 구독 정보가 정리되지 않는 상태를 이용해 힙 메모리를 조작하여 cupsd 충돌 또는 코드 실행을 유도
🛡️ 대응 방법
CUPS를 2.4.17 이상 버전으로 업데이트하고, 필요하지 않다면 cupsd 서비스를 중지하거나 외부 접근을 차단
🔧 검증 코드
출력된 버전이 2.4.16 이하이면 취약하며, 2.4.17 이상이면 패치가 적용된 것입니다. 명령이 아무 결과도 내지 않으면 CUPS가 설치되지 않은 것입니다.
cups-config --version 2>/dev/null || cupsd -v 2>/dev/null || dpkg -l cups 2>/dev/null | grep -E '^ii'