ClickCease CVE-2021-45078 TuxCare에서 확인 | tuxcare.com

인기 뉴스레터 구독하기

4,500명 이상의 Linux 및 오픈소스 전문가와 함께하세요!

한 달에 두 번. 스팸이 없습니다.

TuxCare의 Lifecycle 연장 지원팀에서 확인한 CVE-2021-45078

2021년 12월 27일 TuxCare 홍보팀

Lifecycle 연장 지원의 적용을 받는 구형 Linux 배포판의 binutils 패키지에 대한 수정 사항을 백포트하는 동안, 팀은 원래 CVE-2018-12699가 해결되는 방식에서 취약점을 발견했습니다. 이 새로운 취약점으로 인해 특정 조건에서 메모리 손상 및 서비스 거부가 발생할 수 있으며, 이 취약점은 다른 여러 패키지에서 사용됩니다.

 

원래 취약점의 CVSS(v3) 점수는 9.8점이며, 새로 발견된 취약점은 7.5점(v3)으로 지정되었습니다. 서비스 가입자에게 제공되는 최신 바이너틸 업데이트에는 이미 근본적인 문제에 대한 적절한 수정 사항이 포함되어 있으며, 보고 이후 업스트림 오픈 소스 프로젝트에서 코드가 수정되었습니다.

 

 

위험에 대한 개괄적인 개요

특정 유형의 정보를 부적절하게 처리하여 특정 바이너타일 도구가 충돌할 수 있습니다. 이로 인해 디버거, 파일 뷰어 등 binutils에 의존하는 다른 도구나 애플리케이션에서 오류가 발생할 수 있습니다.

 

Binutils에는 바이너리 ELF(Linux 바이너리 실행 파일) 및 ELF의 이전 형식인 XCOFF를 사용하는 파일과 같은 다양한 유형의 파일을 분석하는 기능이 포함되어 있습니다. 이 취약점을 유발하는 구체적인 사례는 XCOFF 기능에 있습니다. 이 파일 형식은 ELF로 대체된 비교적 오래된 파일 형식인 것은 사실이지만, 이를 처리하는 코드는 여전히 binutils 패키지에 존재합니다.

 

binutils는 Linux 배포판의 기본 패키지로, 소프트웨어 개발 도구를 직접 사용하지 않더라도 다른 패키지의 종속성으로 프로덕션 시스템에 이미 배포되어 있을 가능성이 높습니다. 여기에는 바이너리 파일 조작, 링크, 어셈블리 및 개발 및 디버깅 시나리오에서 많이 사용되는 기타 다양한 기능과 같은 작업을 수행할 수 있는 여러 도구가 포함되어 있습니다. 이를 최신 상태로 유지하면 이러한 애플리케이션과 핵심 시스템 기능을 안정적이고 안전하게 유지할 수 있습니다.

 

문제를 자세히 살펴보기

 

binutils/stab.c 파일에 있는 stab_xcoff_builtin_type 함수에서 특정 타입넘버(-34)가 전달될 때 발생하는 'info-xcoff_types' 배열에 대한 범위를 벗어난 쓰기가 있습니다. 이로 인해 쓰기 작업이 3668줄에 있는 인접 필드 'info->tags'를 덮어쓰게 됩니다.

 

그러면 finish_stab 함수를 호출할 때 세그멘테이션 오류 오류가 발생합니다.

 

새로운 이슈에 대해 CVE-2021-45078이 요청되어 할당되었으며, CVSS(v3) 점수 7.5를 받았습니다. 매우 최근의 일이기 때문에 다른 개발자가 상황을 추가로 분석하면 이 점수가 변경될 가능성도 배제할 수 없습니다. 코드의 다른 곳에서 유사한 상황을 다루었으나 이 특정 코드에서 누락된 기존 CVE-2018-12699는 9.8점(10점 만점)을 받았으므로 바이너타일 충돌을 유발하는 것은 주의가 필요한 매우 심각한 상황으로 인식되고 있습니다.

 

"그들[업스트림 프로젝트 팀]은 단일 패치로 모든 상황을 해결해야 하는 방대한 CVE 목록을 가지고 있지만 실제로 모든 경우를 해결하지는 못했습니다."라고 누락된 수정 사항을 발견한 바이누틸에 대한 수정 사항을 백포트하는 팀원 Pavel Mayorov는 설명합니다. "패치가 이 문제를 일으킬 수 있는 소스 코드의 모든 곳을 건드리지는 않았습니다." 또한 단일 패치가 여러 CVE를 다루는 것은 드문 일이며, 간과한 부분이 있었을 수도 있습니다.

 

전체 보고서는 여기에서 확인할 수 있으며 문제를 유발하는 개념 증명 코드가 포함되어 있습니다.

 

이 취약점은 CVE-2018-12699의 불완전한 수정으로 인해 발생한 것으로, 문제를 유발할 수 있는 일부 사례가 누락되었습니다. 보고된 상황은 보고서가 제출된 후 다른 프로젝트 개발자에 의해 해결되었으므로 앞으로 모든 binutils 버전에서 이 문제가 해결될 것입니다. 또한 원래 공급업체의 지원을 받지 않지만 Lifecycle 연장 지원 서비스의 적용을 받는 이전 Linux 배포판에서도 수정되었으며, 이러한 시스템에서도 일반적인 업데이트 채널을 통해 수정된 버전을 사용할 수 있습니다.

Kernel 재부팅, 시스템 다운타임 또는 예정된 유지 보수 기간 없이 취약성 패치를 자동화하고 싶으신가요?

TuxCare로 라이브 패치에 대해 알아보기

TuxCare 게스트 작가 되기

시작하기

메일

가입

4,500

Linux & 오픈 소스
전문가!


뉴스레터 구독하기