피드로 돌아가기
nginx-ui's MCP endpoint shipped with 'empty allowlist equals allow-all' — and that's the story worth sitting with
Dev.toDev.to
Security

CVE-2026-33032: 인증 누락 및 Allowlist 설정 오류로 인한 Nginx 제어권 탈취

nginx-ui's MCP endpoint shipped with 'empty allowlist equals allow-all' — and that's the story worth sitting with

김형운2026년 4월 27일8intermediate

Context

AI 도구의 Nginx 설정 관리를 위한 MCP(Model Context Protocol) 통합 과정에서 /mcp_message 엔드포인트의 보안 검증 로직 누락 발생. 기존 시스템의 보안 컨트롤을 그대로 상속받지 못한 채 신규 기능을 추가하며 발생한 아키텍처적 허점 분석.

Technical Solution

  • /mcp_message 엔드포인트에 AuthRequired() 미들웨어를 추가하여 강제 인증 체계 구축
  • 'Empty Allowlist'를 'Allow-All'로 처리하던 기본 로직을 'Deny-All' 기반의 Fail-Closed 모델로 전환
  • CVE-2026-27944를 통한 node_secret 유출과 MCP 세션 획득으로 이어지는 공격 체인 차단
  • 신규 기능 추가 시 기존 보안 미들웨어의 일관된 적용을 보장하는 회귀 테스트(Regression Test) 도입
  • Capability Exposure가 발생하는 AI 통합 인터페이스 전용 위협 모델링 재수행

1. 신규 API 엔드포인트 추가 시 인증 미들웨어 적용 여부를 검증하는 통합 테스트가 존재하는가?

2. Allowlist/Denylist 설정값이 비어있을 때 시스템이 가장 안전한 상태(Deny-All)로 동작하는가?

3. AI 에이전트 등 외부 도구에 권한을 부여하는 인터페이스 추가 시 전용 Threat Modeling을 수행했는가?

원문 읽기