Go program are vulnerable to CVE-2026-98432 (Linux TCP Use-After-Free which can lead to remote code execution)
Go 보안팀, Linux 커널 취약점에 패치 커널 업그레이드 권고
CVE-2026-98432는 Linux 커널의 IPv4 TCP 처리 취약점으로, Anthropic이 공개한 원격 공격 시연에는 MPTCP 리스너가 필요합니다. Go 1.24부터 Linux 리스너가 MPTCP를 기본 활성화해 Go 서버도 시연된 공격 경로를 열 수 있습니다. MPTCP 비활성화는 해당 경로를 제한하는 완화책이며 Go 보안팀은 패치된 커널로 업그레이드하라고 권고했습니다.
- 주제
본문
Go 보안팀은 CVE-2026-98432의 원인이 Go 프로그램이 아닌 Linux 커널의 IPv4 TCP 연결 처리 과정에 있다고 밝혔습니다. Anthropic이 공개한 원격 코드 실행 시연은 MPTCP 리스너를 노리는 공격으로, Go 1.24부터 Linux의 리스너 소켓은 MPTCP를 기본 활성화하므로 Go 서버도 이 공격 경로를 열 수 있습니다.
이 취약점은 TCP 연결을 처리하는 커널 코드에서 메모리를 해제한 뒤 다시 접근하는 use-after-free 문제입니다. Anthropic의 시연에서는 원격 공격자가 인증이나 사용자 동작 없이 취약한 커널의 권한으로 명령을 실행했습니다. 따라서 Go 언어의 메모리 관리 결함이 아니라, Go 프로그램이 만든 리스너를 통해 호스트 Linux 커널의 취약한 코드가 공격받는 상황입니다.
Go 보안팀은 GODEBUG=multipathtcp=0을 실행 환경에 설정하거나 주 모듈의 go.mod 파일에 godebug multipathtcp=0을 넣어 MPTCP 기본값을 끌 수 있다고 안내했습니다. net.ListenConfig.SetMultipathTCP와 같은 소켓별 설정은 이 기본값보다 우선합니다. 다만 MPTCP를 끄는 조치는 Anthropic이 시연한 공격 경로를 제한할 뿐 커널 취약점을 고치지는 않습니다. 리스너 하나라도 MPTCP를 켠 채 남으면 시연 경로가 열릴 수 있고, 커널 버그도 MPTCP에만 한정되지 않습니다. Go 보안팀은 패치된 Linux 커널로 업그레이드하는 방법을 최선의 해결책으로 권고했습니다.
Go 보안팀이 발표한 시점에는 MPTCP 리스너가 없는 시스템에서 다른 공격 경로가 성립하는지 확인되지 않았습니다. Go 보안팀은 Go의 기본 동작을 바꿀지 논의하기에는 이르다고 밝혔으며, 변경을 확정하지 않았습니다.
자료: Go 보안팀 발표 / 정리·해설: Trawling
참고 자료
- Discovering and exploiting vulnerabilities in critical, real-world software with Claude \ Anthropic — https://www.anthropic.com/research/discovering-vulnerabilities-with-claude
- proposal: net: Disable MPTCP by default · Issue #82717 · golang/go — https://github.com/golang/go/issues/82717
- NVD-CVE-2026-98432 — https://nvd.nist.gov/vuln/detail/cve-2026-98432