심층 분석: GNU-Linux 시스템의 치명적인 CUPS 취약점 탐색

최근 몇 년간 Linux 시스템에 영향을 미치는 여러 고위험 취약점이 보고되면서 Linux 사용자들은 어려움을 겪고 있습니다. 보안 연구원들은 이제 GNU/Linux 시스템을 대상으로 하며 잠재적인 원격 코드 실행(RCE) 경로를 제공하는 Common UNIX Printing System(CUPS) 기능과 관련된 새로운 취약점들을 분석하고 있습니다.
2024년 9월 27일, evilsocket.net의 Simone Margaritelli는 중요한 정보를 공개했습니다. CUPS의 여러 악용 가능한 취약점에 대한 내용이며, 이후 이 중 4개에 CVE가 할당되었습니다. 이 숫자는 더 늘어날 수 있지만, 이 글을 쓰는 시점에는 보안 커뮤니티에서 이러한 발견의 실제 심각성에 대해 논의 중입니다. CVE 중 하나인 CVE-2024-47177은 MITRE로부터 9.1점의 심각도 등급을 받았지만, 이 명령 주입 결함을 성공적으로 조작하려면 CUPS 서비스가 활성화된 서버가 필요하며, 추가로 UDP 포트 631 또는 DNS-SD에 대한 접근 권한이 있어야 합니다. RedHat은 CUPS를 다른 포트로 재매핑하는 것이 가능하다고 언급했습니다.
Margaritelli가 분석한 이번 사건의 포괄적인 내용은 커뮤니티의 의견 차이에도 불구하고 무시해서는 안 될 복잡하고 교묘한 공격 체인을 보여줍니다. 이는 위협 행위자가 충분히 결심하고 부실한 코딩 패턴으로 인해 작은 기회의 창이 열려 있다면, 사소해 보이는 의존성조차도 심각하게 악용될 수 있다는 교훈을 줍니다.
CUPS 시나리오는 많은 개발자와 AppSec 전문가가 이전에 경험했던 것과는 다소 다르므로, 함께 살펴보고 여러분의 실력을 테스트해 보겠습니다.
취약점: CUPS를 통한 원격 코드 실행(RCE)
Evilsocket 블로그는 이러한 공격에 대한 독보적이고 철저한 배경 지식을 제공하며, 이는 우리가 계속해서 면밀히 주시할 리소스입니다. Margaritelli는 자신의 기사에서 Linux의 전반적인 보안 견고성에 대해 낙관적이지 않은 익명의 소식통을 인용했습니다.
“일반적인 보안 관점에서 볼 때, 오늘날의 Linux 시스템 전체는 악용되기를 기다리는 보안 구멍으로 가득 찬 끝없고 절망적인 혼란 그 자체입니다.”
이는 오픈 소스 환경에 여전히 만연한 내재적 보안 위험을 상기시켜 주며, 전 세계 개발 커뮤니티 내에서 보안 인식 제고와 안전한 코딩 기술이 절실히 필요함을 보여줍니다.
CVE를 살펴보겠습니다.
이 취약점 체인은 광범위하며 현재 다음 패키지의 모든 최신 및 이전 버전에 영향을 미칩니다.
- distrotech/cups-filters
- OpenPrinting/cups-filters
- Cups-browsed
- libcupsfilters
- libppd
CUPS는 20년 넘게 UNIX 및 Linux 운영 체제의 레거시 구성 요소였습니다. 인쇄 서비스 의존성으로서의 기능 때문에 네트워크 요청을 수행하려는 경향이 강하며, 이로 인해 RCE급 취약점의 주요 표적이 됩니다.
하지만 이번 사례에서는 공격이 결합하여 성공적인 결과를 만들어내는 방식에 독창성이 있습니다. 이는 본질적으로 인증되지 않은 공격자가 탐지되지 않은 상태에서 인터넷 인쇄 프로토콜(IPP) URL을 악성 URL로 교체하고, 새로 추가된 프린터의 기능을 설명하는 파일인 PPD(PostScript Printer Description) 파일에서 명령 주입을 유발할 수 있는 지시문을 수정하는 능력입니다. 이로 인해 인쇄 작업이 활성화되면 명령 실행 공격이 발생하며, 이는 CUPS 구성 요소 내의 입력 유효성 검사 부족에 의존합니다.
또한 Evilsocket이 지적했듯이, 이 특정 취약점을 수정하는 것은 양날의 검과 같습니다. CUPS에는 과거부터 고위험 악용 가능 구성 요소로 알려진 foomatic-rip 필터가 포함되어 있습니다. 이 구성 요소와 관련된 CVE는 2011년까지 거슬러 올라가며, foomatic-rip이 OS 명령을 실행하는 데 악용될 수 있음이 밝혀졌지만, 이를 수정하면 안정성 문제가 발생하고 많은 구형 프린터에 대한 지원이 중단됩니다. 이는 극복하기 복잡한 문제입니다.

- 위협 행위자가 공격을 시작함
- CVE-2024-47176: cups-browsed <= 2.0.1은 INADDR_ANY를 사용하여 UDP 포트 631에 바인딩되므로 모든 소스에서 수신된 패킷을 신뢰하는 취약점이 있습니다. 이를 통해 인증되지 않은 원격 공격자가 조작된 IPP URL(공격자가 제어하는 IPP 서버를 가리킴)이 포함된 악성 UDP 패킷을 보내 취약점을 트리거할 수 있습니다. 피해자의 시스템은 이제 새 프린터에 연결 중이라고 생각하고 프린터 속성을 요청하는 패킷을 보냅니다.
- 피해자 시스템이 프린터 속성을 처리함
- CVE-2024-47076: libcupsfilters <= 2.1b1의 cfGetPrinterAttributes5에는 IPP 서버에서 반환된 IPP 속성을 제대로 검증하거나 삭제하지 않는 취약점이 있습니다. cups-browsed가 패킷을 처리할 때 공격자가 보낸 악성 속성을 읽도록 유도될 수 있습니다.
- 피해자 시스템이 공격자가 제어하는 IPP 서버에 연결함
- CVE-2024-47175: libppd <= 2.1b1의 ppdCreatePPDFromIPP2 함수는 IPP 속성을 임시 PPD(PostScript Printer Description) 파일에 저장할 때 이를 제대로 검증하거나 삭제하지 않습니다. 이를 통해 공격자는 FoomaticRIPCommandLine 지시문을 포함하여 PPD 파일에 임의의 데이터를 주입할 수 있으며, 인쇄 시스템은 나중에 이를 실행할 수 있습니다.
- 피해자 시스템이 인쇄 작업을 시작하고 공격자의 코드가 실행됨
CVE-2024-47177: cups-filters <= 2.0.1은 foomatic-rip 필터가 FoomaticRIPCommandLine 지시문을 통해 임의의 명령을 실행하여 공격자가 cups-browsed 프로세스로 명령을 실행할 수 있게 하므로 취약합니다. 공격자는 피해자의 시스템이 인쇄 작업을 시작하기를 기다립니다. 인쇄 작업이 시작되는 순간 공격자의 악성 코드가 실행됩니다(원격 코드 실행).
RCE 위험을 어떻게 완화할 수 있을까요?
비즈니스 운영의 일부로 CUPS를 사용하는 기업은 Evilsocket 및 RedHat에서 권장하는 수정 조언을 따라야 합니다. 여기에는 긴급 수준의 우선순위로 보안 패치를 적용하는 것이 포함되지만 이에 국한되지는 않습니다.
명령 주입에 대한 일반적인 내용은 종합 가이드를 확인하세요.
더 많은 무료 코딩 가이드라인을 원하신다면, Secure Code Coach를 통해 최신 보안 코딩 모범 사례를 확인해 보세요.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)