🇰🇷 한글 설명
Linux 커널의 TCP Fast Open(TFO) 기능에서 SO_REUSEPORT 리스너 마이그레이션 시 max_qlen 계정이 정확하지 않게 처리되는 취약점입니다. 이로 인해 설정된 제한보다 훨씬 많은 TFO 요청이 허용될 수 있습니다.
💡 쉬운 설명
네트워크 연결을 빠르게 만드는 기능의 관리 숫자가 꼬이면서, 정해진 한도보다 훨씬 많은 접속 요청을 받아들이게 되는 문제입니다. 이로 인해 서버가 과부하를 견디지 못할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tcp: fix TFO max_qlen accounting across reuseport migration
A listener's TCP_FASTOPEN max_qlen stops being accurate and lets through
far more pending Fast Open requests than it was configured for.
This only shows up with SO_REUSEPORT listener migration, where closing a
listener hands its still-pending TFO children over to a surviving one.
fastopenq.qlen is charged in tcp_fastopen_create_child() when the child
is created and uncharged in reqsk_fastopen_remove() when the handshake
completes. The uncharge follows rsk_listener of the request the child
points at, and inet_reqsk_clone() has repointed the child at a new
request owned by the new listener, so the ++ and the -- land on two
different sockets. The new listener's qlen drifts negative and its
limit no longer binds.
Charge the new listener during migration, like reqsk_queue_migrated()
already does for queue->young and queue->qlen.
📍 영향받는 시스템
SO_REUSEPORT를 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
SO_REUSEPORT 환경에서 리스너 마이그레이션을 유도하여 TFO 요청을 대량으로 전송하는 방식
🛡️ 대응 방법
TCP TFO max_qlen 계정 로직이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인