🇰🇷 한글 설명
Nezha 모니터링 도구의 특정 버전에서 서비스 센티넬 워커의 불완전한 수정으로 인해 nil 역참조가 발생할 수 있습니다. 인증된 멤버 권한을 가진 사용자가 서버 삭제 요청을 동시에 보낼 경우 레이스 컨디션을 유발하여 서비스 전체가 충돌하고 중단될 수 있습니다.
💡 쉬운 설명
모니터링 프로그램의 허점을 이용해 특정 명령을 빠르게 반복하면 프로그램이 갑자기 꺼져버리는 문제입니다. 권한이 있는 사용자가 서버를 삭제하는 과정에서 시스템을 강제로 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
Nezha is a server and website monitoring tool. In versions >= 2.2.11 and < 2.3.1, the service sentinel worker (service/singleton/servicesentinel.go) contains an incomplete fix for a previously reported nil dereference denial of service (GHSA-qjpp-gffx-2wm9). The 2026-07-21 fix re-validated the service lifecycle under serviceResponseDataStoreLock but reused an already-captured, now stale reporter pointer and never re-validated the server, and that lock does not guard ServerShared. An authenticated user with the member role who owns an agent can issue a concurrent server delete (POST /api/v1/batch-delete/server) for their own server to win the race window, causing the worker to dereference a missing entry in the server list snapshot. Because the sentinel workers and the gRPC server have no recover()/recovery interceptor, the resulting panic is unrecovered and crashes the entire instance. This is fixed in version 2.3.1.
📍 영향받는 시스템
Nezha versions >= 2.2.11 and < 2.3.1
⚔️ 공격 벡터
인증된 멤버 권한을 가진 사용자가 서버 삭제 API(POST /api/v1/batch-delete/server)를 이용한 레이스 컨디션 공격
🛡️ 대응 방법
Nezha 버전을 2.3.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 2.2.11 이상 2.3.1 미만인지 확인합니다.
curl -s http://<target_ip>/version | grep -E '2\.[2-3]\.'