OpenBSD 7.9 errata, Calif가 로컬 루트 익스플로잇으로 연결한 커널 버그 수정
보안 업체 Calif는 원래의 BSD 코드까지 약 37년을 거슬러 올라가는 공유 메모리 결함이 로컬 루트 공격 체인의 한 축이었다고 밝혔다. Calif는 OpenBSD가 errata 018과 026으로 수정 사항을 배포했다고 전했다.

핵심 내용
- 1Calif는 두 가지 커널 버그를 결합한 OpenBSD 로컬 루트 익스플로잇에 관한 연구를 공개했으며, 수정 사항은 OpenBSD 7.9 errata에 수록되어 있다.
- 2Calif에 따르면 결함 중 하나는 원래의 BSD 소스까지 약 37년을 거슬러 올라가는 부호 있는 16-bit 공유 메모리 연결 카운터와 관련되어 있다.
- 32026년 9월 14일자 OpenBSD errata 018은 shmat의 정수 오버플로에 대한 안정성 수정으로 분류되어 있다.
- 42026년 9월 30일자 errata 026은 use-after-free를 유발할 수 있는 커널 참조 카운팅 버그에 대한 보안 수정으로 분류되어 있다.
- 5이 익스플로잇은 로컬 접근이 필요하며, Calif는 안전한 리스트 연결 해제, 할당자 무작위화, 컴파일러 기반 완화 등 보다 폭넓은 커널 보안 강화도 제안했다.
기사 전문
보안 업체 Calif는 OpenBSD에서 두 가지 커널 결함을 결합해 루트 권한을 획득한 방법을 설명하는 연구를 공개했다. 이 결함들은 이후 프로젝트 측에서 패치했다. Andrew Griffiths가 작성한 10월 16일자 글에서 회사는 버그 중 하나가 원래의 BSD 소스까지 대략 37년을 거슬러 올라간다고 밝혔다. Calif는 올해 초 이 취약점들을 OpenBSD에 보고했으며, 그중 상당수는 수정 패치 제안과 함께 전달했다고 말했다.
Calif에 따르면 오래된 결함은 공유 메모리 연결(attach) 횟수를 추적하는 카운터와 관련된 것으로, 이 카운터는 부호 있는 16-bit 값으로 정의되어 있어 오버플로가 발생할 수 있다. 회사는 이 오버플로가 경쟁 조건을 통해 use-after-free로 이어질 수 있으며, 커널 내 별도의 범위 외 쓰기(out-of-bounds write) 결함과 함께 악용하면 로컬 사용자가 루트 권한으로 상승할 수 있었다고 설명했다. Calif는 이 공격이 OpenBSD의 KARL 커널 재링크와 SMAP 및 SMEP 프로세서 보호 기능이 활성화된 상태에서도 작동했으며, 정보 유출 버그가 필요하지 않았다고 밝혔다. 이 글에는 코드와 개념 증명(PoC)에 대한 링크도 포함되어 있다.
Calif는 이 문제들이 OpenBSD errata 018과 026에서 해결되었다고 밝혔다. OpenBSD 7.9 errata 페이지에서 018은 2026년 9월 14일자로, shmat의 정수 오버플로를 방지하는 안정성(reliability) 수정으로 기재되어 있다. 2026년 9월 30일자 errata 026은 커널에서 use-after-free 상태를 초래할 수 있는 참조 카운팅 버그에 대한 보안 수정으로 기재되어 있다. 두 항목 모두 모든 아키텍처에 적용된다. Calif는 두 errata를 자사 공격 체인에 포함된 문제들의 수정으로 지목하고 있어, 두 수정 중 하나는 보안 라벨이 아닌 안정성 라벨이 붙어 있는 셈이다.
errata 페이지에 따르면 패치는 서명된 unified diff 형식으로 배포되며, syspatch 유틸리티를 통해 amd64, i386, arm64에서 바이너리 업데이트를 설치할 수 있다. 지원 대상 릴리스에 대한 수정은 -stable 브랜치에도 반영되며, 프로젝트는 이 브랜치를 릴리스 후 1년간 유지 관리한다. Calif는 이 익스플로잇을 로컬 권한 상승으로 설명하고 있으며, 이는 공격자가 먼저 시스템에 접근할 수 있어야 한다는 뜻이다.
Calif는 errata 외에도 유사한 공격 경로를 더 어렵게 만들기 위한 여러 보안 강화 아이디어를 제시했다. 여기에는 이중 연결 리스트에서 항목을 제거하기 전에 무결성을 검사하는 방안이 포함되며, 회사는 FreeBSD와 NetBSD가 이미 이를 구현하고 있다고 언급했다. 또한 커널 메모리의 무작위화 강화도 제안했는데, Calif는 KARL이 커널 바이너리 배치를 무작위화하지만 OpenBSD의 커널 할당자는 여전히 결정적으로 동작한다고 밝혔다. 회사는 배열 경계 새니타이저와 곧 도입될 Alloc Tokens 같은 컴파일러 기능도 언급했다. Calif는 FreeBSD에 이 새니타이저를 제안했으며, 새니타이저로 잡아낼 수 있었을 21건의 문제를 FreeBSD에 비공개로 보고했다고 밝히면서, AI가 취약점 발견을 돕게 되면서 버그 유형 전체를 완화하는 일이 더욱 중요해지고 있다고 주장했다.
왜 중요한가
보안 라벨이 붙은 errata만 적용하는 관리자는 OpenBSD가 안정성 수정으로 분류한 018을 건너뛰었을 수 있다. 그러나 Calif는 018을 자사 루트 익스플로잇 체인에 쓰인 버그들에 대한 두 가지 수정 중 하나로 지목하고 있다. 익스플로잇 코드가 공개적으로 언급되고 있는 만큼, 특히 신뢰할 수 없는 사용자가 로컬로 로그인할 수 있는 시스템에서는 018과 026이 모두 설치되어 있는지 확인하는 것이 바람직하다.
타임라인
· 게시
주제#OpenBSD#커널#권한 상승#패치 관리#Calif
출처
이 기사는 다음 출처를 바탕으로 합니다. 전체 맥락은 출처에서 확인하세요.



