Reddit

Is This A Joke? In The Auth Header? (F5 BIG-IP UnAuth Heap-Overflow to RCE CVE-2026-94127) - watchTowr Labs

인증 헤더가 너무 길면? F5 BIG-IP 비인증 힙 오버플로에서 RCE까지

watchTowr Labs가 F5 BIG-IP APM의 OAuth 처리 과정에서 발견한 비인증 힙 오버플로 취약점 CVE-2026-94127을 분석합니다. Authorization 헤더 길이를 검사하지 않고 고정 크기 버퍼에 복사해 메모리를 손상시키며, 연구진은 이를 원격 코드 실행으로 이어지는 경로까지 재현했습니다.

AI 요약

F5 BIG-IP는 네트워크 가장자리에서 트래픽을 처리하고 TLS 종료, 로드 밸런싱, 인증 기능 등을 담당하는 장비입니다. watchTowr Labs는 BIG-IP APM의 OAuth 기능에서 인증 헤더를 처리하는 코드에 힙 오버플로가 발생한다고 분석합니다. 취약점은 인증되지 않은 요청으로 유발되며, 연구진은 메모리 손상을 원격 코드 실행으로 연결하는 과정을 살펴봤습니다.

취약점이 생긴 이유

연구진은 취약한 BIG-IP 21.1.0 빌드와 수정된 21.1.0.2 핫픽스를 비교했습니다. Diaphora로 바이너리를 분석한 결과, 수정된 코드에는 Authorization 헤더 길이가 0x4100바이트를 넘는지 확인하는 검사가 추가됐습니다. 기존 코드는 0x4100바이트 크기의 힙 버퍼를 할당한 뒤 헤더 값을 복사했지만, 복사 전에 길이를 제한하지 않았습니다. 헤더가 버퍼보다 길면 인접한 힙 메모리까지 덮어씁니다.

재현과 원격 코드 실행

취약점은 BIG-IP APM에서 OAuth 프로필을 설정한 환경에서 재현했습니다. 연구진은 OAuth 사용자 정보 엔드포인트에 0x4100바이트보다 긴 Bearer 인증 헤더를 보내자 프로세스가 충돌했다고 설명합니다. 힙 메타데이터가 손상되면서 해제 과정에서 assert가 발생했습니다.

연구진은 여러 실행에서 버퍼 뒤쪽에 함수 포인터를 포함한 객체가 놓이는 힙 배치를 관찰했습니다. 이 함수 포인터를 덮어쓴 뒤 코드 실행 흐름을 제어하는 방식으로 RCE를 구성했습니다. 처음에는 execvp 호출을 시도했지만 SELinux가 exec 시스템 호출을 차단했습니다. 웹 서버에 셸을 쓰는 방법도 SELinux 정책에 막혔습니다. 이후 프로세스가 충돌할 때마다 실행되는 /etc/bigstart/scripts/tmm.finish 스크립트를 찾아, 충돌 처리 과정에서 원하는 명령을 실행하도록 연구를 이어갔습니다.

영향 버전과 수정

F5 권고문 K000162605에 따르면 BIG-IP APM 21.1.0이 영향을 받으며, 21.1.0.2.0.30.22-ENG 핫픽스가 수정 버전으로 제시됐습니다. 17.x에서는 17.5.0~17.5.1 및 17.1.0~17.1.3이 영향을 받고, 각각 17.5.1.9.0.160.12-ENG와 17.1.3.5.0.41.14-ENG 핫픽스가 안내됐습니다. 권고문은 다른 BIG-IP 모듈과 BIG-IQ Centralized Management에는 취약 버전이 없다고 적었습니다. 원문은 인터넷에서 실제 악용이 이뤄지고 있다고 언급합니다.

Reddit 반응

  • @u/HJForsythe — 이 정도 허술함이 가능하다니, F5 제품은 가격을 너무 비싸게 받습니다.
    • @u/Limn0 — 개발팀을 인도에 외주 줄 정도로 싸게 받지는 않으면서 말입니다.
  • @u/pourquoipasvous — BIG-IP에겐 너무 큰 인증 헤더군요.
  • @u/Human_Pollution2820 — 난장판이네요.
  • @u/ImATurtleOnTheNet — 이제 Fable이 저 스택을 Go나 Rust로 다시 쓰게 할 때입니다.
  • @u/NamedBird — 보안이 중요한 소프트웨어를 메모리 안전하지 않은 언어로 작성해 놓고, 매주 해킹당하는 이유를 궁금해하는 모습을 상상해 보세요.
    • @u/Foo-Bar-Baz-001 — 왜 이 댓글에 반대가 눌렸는지 모르겠습니다. 이게 정확히 이런 일이 일어나는 방식입니다. F5에서는 그 개발 과정을 누구도 문제 삼지 않았고요.

원문: watchTowr Labs / 번역·요약: Trawling