NGINX 치명 취약점 CVE-2026-42533: 영향 범위 확인과 업그레이드 가이드

🤖 AI Summary
F5가 7월 15일 공개한 CVE-2026-42533은 NGINX의 map 정규식 처리에서 생기는 힙 버퍼 오버플로입니다. 인증 없는 공격자가 조작된 HTTP 요청으로 워커 프로세스를 재시작시킬 수 있고, ASLR이 꺼졌거나 우회되면 코드 실행까지 이어질 수 있어요. CVSS v4.0 기준 9.2 Critical입니다. 취약 구간은 0.9.6부터 1.31.2까지이고, 수정판은 1.30.4와 1.31.3, NGINX Plus는 37.0.3.1이고요. 같은 릴리스에 CVE 2건이 함께 패치됐고, 커뮤니티 ingress-nginx는 지원 종료 상태라 수정판이 나오지 않죠. 7월 20일 기준 공개 익스플로잇은 없지만 보고자가 패치 21일 뒤 PoC 공개를 예고했으니, 업그레이드를 미룰 이유가 없죠.
블로그 목차
CVE-2026-42533은 무엇이 문제인가
map 지시어의 정규식 캡처 변수를 잘못된 순서로 참조할 때 생기는 힙 버퍼 오버플로입니다. F5 공식 권고를 옮기면, map 지시어가 정규식 매칭을 쓰는 상태에서 문자열 표현식이 map의 출력 변수보다 정규식 캡처 변수를 먼저 참조할 때 문제가 생깁니다. 특정 조건에서는 캐시되지 않는 변수를 쓰는 경로로도 같은 결과에 도달할 수 있다고 해요.
공격 요건이 낮다는 점이 위험을 키웁니다. 인증이 필요 없고, 조작된 HTTP 요청만으로 워커 프로세스에 힙 버퍼 오버플로를 일으켜 재시작시킬 수 있습니다. 다만 F5는 공격자 통제 밖의 조건이 함께 맞아야 한다고 명시했어요. ASLR이 꺼져 있거나 우회 가능한 시스템에서는 코드 실행까지 이어질 수 있습니다. 분류는 CWE-122(힙 기반 버퍼 오버플로)이고, 평가는 CVSS v3.1 기준 8.1 High, v4.0 기준 9.2 Critical입니다. F5는 컨트롤플레인 노출은 없는 데이터플레인 문제라는 점도 적어 두었습니다.
영향 범위: 0.9.6부터 15년 치, 파생 제품까지
nginx.org 공식 보안 권고 기준으로 취약 구간은 0.9.6부터 1.31.2까지, 안전판은 1.30.4 이상(stable)과 1.31.3 이상(mainline)입니다. 정규식 map을 지원한 이래의 사실상 모든 버전이 걸리는 셈이라, 오래 방치된 서버일수록 해당될 확률이 높죠.
같은 릴리스에 CVE 2건이 함께 수정됐습니다. slice 모듈의 메모리 노출(CVE-2026-60005, 1.15.8~1.31.2)과 SSI 모듈의 use-after-free(CVE-2026-56434, 0.8.11~1.31.2)입니다. 둘 다 심각도 medium이지만, 42533만 확인하고 멈추면 나머지 둘을 놓칩니다. 업그레이드 한 번으로 세 건이 함께 닫히니 버전을 올리는 쪽이 답이에요.
파생 제품도 짚어야 합니다. F5 표 기준으로 NGINX Plus는 37.0.0.1~37.0.2.1이 취약하고 37.0.3.1에서 수정됐으며, R33~R36 계열은 R36 P7이 수정판입니다. NGINX Ingress Controller는 5.5.3과 2026-lts-r4에서 수정됐지만 3.x와 4.x 계열에는 수정판이 없습니다. Gateway Fabric은 2.6.7에서 수정, 1.x는 없음. App Protect WAF는 4.x와 5.x 모두 아직 수정판이 없고, Instance Manager는 2.22.2가 수정판입니다. BIG-IP와 F5 Distributed Cloud, NGINX One Console은 영향이 없다고 평가됐어요.
쿠버네티스 사용자라면 한 가지 더 확인해야 합니다. 여기서 말한 Ingress Controller는 F5 제품이고, 커뮤니티 ingress-nginx는 2026년 3월 v1.15.1을 끝으로 지원이 종료되어 이번 수정판이 나오지 않습니다. HeroDevs 분석에 따르면 그 이미지 안의 NGINX 오픈소스 빌드는 취약 구간 한가운데에 있죠. 클러스터의 엣지가 패치 없는 취약점을 안고 있는 상황이니, 지원 종료 소프트웨어의 위험은 쿠버네티스 1.33 지원 종료 글에서 다룬 문제와 정확히 같은 계열입니다.

지금 할 일: 확인, 업그레이드, 완화
첫째, 버전부터 확인합니다. nginx -v 출력이나 컨테이너 이미지 태그가 0.9.6~1.31.2 구간이면 해당됩니다. 리버스 프록시, 인그레스, 사이드카처럼 NGINX가 숨어 있는 자리까지 포함해서 보는 것이 중요해요. 둘째, 업그레이드가 정공법입니다. 오픈소스는 1.30.4 또는 1.31.3, Plus는 37.0.3.1이나 R36 P7로 올리면 함께 패치된 두 건까지 같이 닫힙니다.
당장 올리기 어렵다면 F5가 안내한 완화가 있습니다. 이름 없는 캡처(unnamed captures)를 쓰지 말고, 고유한 이름 있는 캡처(named captures)를 정규식 매칭과 같은 블록 안에서만 쓰라는 것입니다. 같은 이름의 캡처를 map과 location처럼 서로 다른 지시어의 정규식에서 재사용하는 것도 금지예요. 설정에서 map 지시어와 정규식, 캡처 변수가 함께 쓰이는 조합을 먼저 찾아보는 것이 순서라는 게 저희 판단입니다. 완화는 어디까지나 임시 조치이고, 취약 코드는 그대로 남으니 업그레이드 일정은 별도로 잡아야 합니다.
달력에 적을 날짜: PoC 공개가 예고됐습니다
The Hacker News에 따르면 7월 20일 기준으로 이 취약점은 CISA의 알려진 악용 취약점(KEV) 목록에 없고, 공개된 익스플로잇 코드도 없습니다. 다만 안심할 국면은 아니에요. 보고자가 패치 21일 뒤 자체 개념증명(PoC) 공개를 예고했기 때문입니다. 8월 초에는 공격 재현 코드가 공개될 수 있다는 뜻이고, 그 시점 이후 미패치 서버의 위험은 다른 차원이 됩니다.
맥락도 눈여겨볼 만합니다. 같은 매체 정리에 따르면 이번 건은 약 두 달 사이 NGINX의 표현식 평가 코드에서 나온 세 번째 힙 오버플로입니다. 5월의 Rift(CVE-2026-42945), 며칠 뒤 rewrite 모듈의 캡처 중첩 버그(CVE-2026-9256)에 이어진 흐름이죠. 코드 실행 재현성을 두고는 보고자와 F5의 평가가 갈립니다. 보고자는 자체 테스트에서 높은 재현율을 주장하지만 상세와 증명은 아직 비공개라, 어느 쪽이든 낙관을 근거로 패치를 미루기는 어렵습니다. 같은 시리즈의 취약점 분석은 7월 13일(월) 발행 OpenSSL 취약점 글에서도 보실 수 있습니다.

이것만 기억하세요
CVE-2026-42533은 NGINX map 정규식 처리의 힙 버퍼 오버플로로, 0.9.6~1.31.2 전 구간이 취약하고 수정판은 1.30.4와 1.31.3입니다. 인증 없이 원격에서 워커를 재시작시킬 수 있고 조건에 따라 코드 실행 가능성도 있어요. 같은 릴리스에 CVE 2건이 함께 패치됐고, 커뮤니티 ingress-nginx는 지원 종료로 수정판이 없습니다. 보고자의 PoC 공개가 예고돼 있으니 그 전에 올리는 것이 안전합니다.
자주 묻는 질문 (FAQ)
Q. 어떤 서버가 영향을 받나요?
NGINX 오픈소스 0.9.6~1.31.2 전 구간과 그 위에 만들어진 파생 제품들입니다. NGINX Plus 37.0.2.1 이하와 R33~R36, F5 Ingress Controller, Gateway Fabric, App Protect WAF, Instance Manager의 해당 버전, 그리고 커뮤니티 ingress-nginx가 포함됩니다. BIG-IP와 F5 Distributed Cloud는 영향이 없다고 평가됐습니다.
Q. map 지시어를 안 쓰면 안전한가요?
공격 경로는 map의 정규식 매칭과 캡처 변수 참조 조합에서 열립니다. 그 조합이 없으면 이 CVE의 알려진 경로는 성립하지 않지만, 취약 버전 위에 있다는 사실 자체는 변하지 않고 함께 패치된 다른 두 건도 남습니다. 설정과 무관하게 업그레이드를 권한다는 것이 저희 판단입니다.
Q. 이미 공격이 발생하고 있나요?
7월 20일 기준으로는 아닙니다. CISA 알려진 악용 취약점 목록에 등재되지 않았고 공개된 익스플로잇 코드도 없었습니다. 다만 보고자가 패치 21일 뒤 개념증명 공개를 예고했으므로, 8월 초 이후에는 상황이 달라질 수 있습니다.
Q. 당장 업그레이드가 어려우면 어떻게 하나요?
F5가 안내한 완화를 적용합니다. 이름 없는 캡처를 쓰지 말고, 고유한 이름 있는 캡처를 정규식 매칭과 같은 블록 안에서만 사용하며, 같은 캡처 이름을 map과 location 등 다른 지시어에서 재사용하지 않는 것입니다. 완화는 임시 조치이므로 업그레이드 일정은 별도로 잡으시길 권합니다.
Q. 쿠버네티스 인그레스를 쓰는데 무엇을 확인해야 하나요?
어느 계열인지부터 확인하세요. F5의 NGINX Ingress Controller라면 5.5.3 또는 2026-lts-r4로 올리면 됩니다. 커뮤니티 ingress-nginx라면 2026년 3월 지원 종료로 이번 수정판이 나오지 않으므로, 후속 인그레스로의 이전 계획이 필요합니다. 클러스터의 트래픽 입구가 패치 없는 상태로 남는 것이 가장 위험한 시나리오입니다.



