GNU C 라이브러리(glibc) 버전 2.41은 Discord와 여러 Steam 게임과 같은 인기 있는 폐쇄형 소프트웨어를 포함한 다양한 애플리케이션에 영향을 미치는 중요한 변화를 도입했습니다. 이 문제는 공유 라이브러리가 필요할 때 'dlopen' 및 'dlmopen'이 스택을 실행 가능하게 만드는 것을 방지하는 수정에서 발생했습니다. 이 변경으로 인해 Arch Linux 사용자들로부터 Julia 프로그래밍 언어와 32비트 시스템용 Mono와 같은 애플리케이션에 대한 회귀 보고가 접수되었습니다.
이러한 문제에 대응하기 위해, 'glibc.rtld.execstack' 조정 가능성을 확장하는 패치가 개발되었습니다. 이를 통해 개발자들은 프로그램 시작 시 실행 가능한 스택을 강제로 설정할 수 있습니다. 이 해결책은 PT_GNU_STACK이 누락되었거나 실행 비트가 설정된 공유 라이브러리를 'dlopen'해야 하는 여러 프로그램의 요구를 충족하는 데 중요합니다. 이 패치는 이 솔루션이 PT_GNU_STACK 강화 기능을 무력화함으로써 보안 문제를 초래할 수 있음을 인정하면서도, 호환성 문제에 직면한 개발자들에게 필요한 옵션을 제공합니다.
이 패치는 aarch64, x86_64 및 i686을 포함한 다양한 아키텍처에서 테스트되어 광범위한 적용 가능성을 보장합니다. 그러나 이 해결책은 setuid 바이너리에 대해 비활성화되어 있어, 잠재적인 위험에도 불구하고 일정 수준의 보안을 유지합니다. 이 조정 가능성의 도입은 보안을 유지하면서 레거시 또는 비준수 코드베이스를 다루는 개발자들에게 유연성을 제공하는 균형을 반영합니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.