홈으로 돌아가기

CVE-2026-4247 FreeBSD TCP DoS 취약점

FreeBSD의 CVE-2026-4247 취약점은 TCP Challenge ACK 처리 시 mbuf 누출을 통해 원격 DoS를 허용합니다. 벡터 설명, 임시 sysctl 수정 및 14/15 브랜치 패치. 릴리스 변경 사항을 고려하여 64비트 버전으로 업데이트 권장.

FreeBSD: TCP Challenge ACK를 통한 DoS (CVE-2026-4247)
Advertisement 728x90

# # FreeBSD의 CVE-2026-4247 취약점: TCP Challenge ACK 처리 중 mbuf 누출

FreeBSD 팀은 2026년 3월 26일 CVE-2026-4247의 세부 사항을 발표했습니다—TCP 연결에서 mbuf 누출을 통해 원격 DoS 공격을 가능하게 하는 취약점입니다. 이 문제는 확립된 연결에서 예상치 못한 TCP 세그먼트를 처리하는 부분에 영향을 줍니다.

TCP 프로토콜은 예상치 못한 패킷을 받았을 때 이를 확인하기 위해 Challenge ACK를 생성합니다. 생성 속도는 sysctl 매개변수로 제한됩니다: net.inet.tcp.ack_war_timewindow (기본값 1000 ms) 및 net.inet.tcp.ack_war_cnt (5). 이 구간 내에서 처음 5개의 패킷만 처리되며 나머지는 무시됩니다.

tcp_subr.ctcp_respond() 함수는 Challenge ACK를 생성하며 mbuf를 소비합니다. ACK가 필요 없을 경우 mbuf는 해제됩니다. 공격자가 패킷을 위장하면 제한을 초과한 패킷당 하나씩 mbuf 손실이 발생합니다.

Google AdInline article slot

모든 FreeBSD TCP 스택이 취약합니다: 기본 스택, RACK, BBR. 기본 스택은 더 많은 ACK를 보내 효과를 증폭시킵니다.

공격 벡터 및 활용 조건

다음 조건에서 공격이 가능합니다:

  • TCP 연결 경로 상에 위치(MITM).
  • 대상에 자신의 연결을 확립.

외부 공격자는 위장(spoofing)을 위해 IP 주소, 포트, 시퀀스 번호를 추측해야 합니다. 복잡성 때문에 성공률이 낮습니다.

Google AdInline article slot

제한(5개/초)을 초과한 각 위장 패킷이 mbuf 누출을 일으켜 풀을 고갈시켜 DoS를 유발합니다.

임시 보호 조치

ACK 속도 제한을 비활성화하세요:

sysctl net.inet.tcp.ack_war_timewindow=0

/etc/sysctl.conf에 추가하여 영속화하세요.

Google AdInline article slot

이 방법은 누출을 없애지만 모든 패킷을 처리하므로 CPU 부하가 증가합니다.

영구 패치 및 브랜치

패치가 적용된 브랜치로 업데이트하세요 (커밋 및 리비전):

  • stable/15/ 1fddb5435315 (stable/15-n282699)
  • releng/15.0/ de9e5d82581e (releng/15.0-n281011)
  • stable/14/ b45e7530ffb9 (stable/14-n273839)
  • releng/14.4/ 44dd8b58394b (releng/14.4-n273676)
  • releng/14.3/ a9cba5321021 (releng/14.3-n271476)

FreeBSD 릴리스 일정

FreeBSD 15.0은 2025년 12월 2일에 출시되었습니다. 브랜치 지원 기간이 4년으로 단축되었으며, 새로운 브랜치가 2년마다 나옵니다. 브랜치당 중간 릴리스는 6개월마다, 전체 사이클은 두 브랜치 병렬 개발로 3개월입니다.

FreeBSD 14.4—2026년 3월 10일. 14.x 브랜치는 32비트 플랫폼의 마지막입니다. FreeBSD 15+는 64비트 전용이며, 레거시 애플리케이션을 위한 COMPAT_FREEBSD32를 제공합니다.

주요 포인트

  • TCP 패킷 위장으로 원격 활용 가능한 취약점, mbuf 고갈로 이어짐.
  • 모든 FreeBSD TCP 스택에 영향; 기본 ACK 제한이 누출을 증폭시킴.
  • 임시 수정: sysctl net.inet.tcp.ack_war_timewindow=0 (CPU 사용량과 트레이드오프).
  • stable/15, releng/15.0, stable/14, releng/14.x에 패치 적용.
  • FreeBSD 14.x는 32비트 지원 종료를 의미; 64비트로 이전하세요.

— Editorial Team

Advertisement 728x90

다음 읽기