🇰🇷 한글 설명
Mongoose 임베디드 웹 서버의 내장 TCP/IP 스택에서 TCP 옵션 길이 검증 미흡으로 인한 취약점이 발견되었습니다. 공격자가 조작된 TCP 옵션을 전송하면 MSS(Maximum Segment Size) 값이 오염되어 데이터 전송이 비정상적으로 이루어질 수 있습니다.
💡 쉬운 설명
해커가 특수하게 조작된 네트워크 신호를 보내면 서버가 데이터를 보낼 때 내용을 잘라버리거나 아예 보내지 못하게 방해할 수 있습니다. 이로 인해 서비스가 정상적으로 작동하는 것처럼 보여도 실제 데이터 전달은 실패하게 됩니다.
🇺🇸 원문 (English)
Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TCP/IP stack enabled by MG_ENABLE_TCPIP in src/net_builtin.c does not reject a TCP option whose declared opts[1] length exceeds the remaining option bytes. In handle_opt(), a NOP followed by a truncated MSS option causes opts[3] to be read outside the declared options area and used as the low byte of dmss. An unauthenticated remote peer can corrupt the per-connection MSS value so later mg_send() calls transmit truncated or zero-length application payloads while the TCP connection otherwise appears healthy. This issue is fixed in version 7.23.
📍 영향받는 시스템
Mongoose version 7.23 미만 (MG_ENABLE_TCPIP 활성화 시)
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 TCP 옵션을 포함한 패킷을 전송하여 공격
🛡️ 대응 방법
Mongoose 라이브러리를 최신 버전인 7.23 이상으로 업데이트
🔧 검증 코드
MG_ENABLE_TCPIP가 활성화되어 있는지 확인하고, MONGOS_VERSION이 7.23 미만인지 체크합니다.
grep -r "MG_ENABLE_TCPIP" /path/to/mongoose/src/net_builtin.c && grep -E "#define MONGOS_VERSION" /path/to/mongoose/src/mongoose.h
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server