
CVE-2026-20079 Cisco FMC 인증 우회 동작을 인증되지 않은 세션과 csm_processes 세션 응답을 비교하여 검증하는 읽기 전용 Python 검사기입니다.
CVE-2026-20079, 즉 Cisco Secure Firewall Management Center(FMC) 인증 우회 취약점을 위한 작고 의도적으로 제한된 검증 유틸리티입니다.
이 저장소는 검사기이지 익스플로잇이 아닙니다.
취약점 체인의 세션 업그레이드, 파일 쓰기, 명령 실행 또는 RCE 부분은 포함하지 않습니다.
검사기는 /help/about.cgi로 두 개의 HTTPS 요청을 전송합니다:
CGISESSID=csm_processes를 포함한 동일한 요청.두 번째 응답이 다음 조건을 모두 충족할 때만 발견 사항이 CONFIRMED로 표시됩니다:
csm_processes 세션 컨텍스트를 명시적으로 식별하는 경우.이는 실험실에서 재현한 인증 우회 동작을 검증하는 보수적이고 읽기 전용인 방법을 제공합니다.
부정적 결과가 어플라이언스가 패치되었다는 것을 증명하지는 않습니다.
문서화된 우회는 부팅 시 생성된 csm_processes 세션이 어플라이언스의 세션 데이터베이스에 남아 있어야 합니다. 인증된 대시보드/위젯 활동, 클라우드 관리 UI 활동, 그리고 인증으로 인한 정리가 이 세션을 제거할 수 있습니다. 한 번 제거되면 이 우회는 해당 세션을 사용할 수 없으며, 이후 재부팅 시 영향을 받는 어플라이언스에서 세션이 다시 생성될 수 있습니다. 이는 모든 성공적인 로그인이 즉시 우회를 비활성화한다는 것을 입증하지 않습니다. VulnCheck의 전제 조건 분석을 참조하십시오.
통제된 실험실 검증을 위한 권장 상태: 최근 재부팅된 어플라이언스의 웹 인터페이스가 사용 가능해진 직후, 어떤 사용자도 인증하거나 웹 UI와 상호작용하기 전에 테스트하십시오. 이 권장 사항은 공개된 세션 전제 조건에서 비롯됩니다: 부팅 시 생성된 세션이 여전히 존재할 가능성을 높이지만, 긍정적 결과를 보장하지는 않습니다.
테스트 상태와 결과를 구분하십시오: 최근 재부팅된 어플라이언스는 이 동작을 관찰할 더 나은 기회를 제공하지만, 로그인 또는 세션 정리 후의 부정적 결과는 어플라이언스가 패치되었다는 것을 입증하지 않습니다. 재부팅 직후의 부정적 결과조차 패치 상태의 증거가 아닙니다.
예를 들어, 사용자가 인증하고 UI 활동이 세션을 지웁니다. 그 후 검사기가 리다이렉트 또는 HTTP 401/403을 수신하면 NOT_CONFIRMED를 보고합니다: 관찰된 동작에 대해서는 부정적이지만, 잠재적으로 취약점 노출에 대한 거짓 부정입니다. 인증은 패치가 아닙니다.
검사기는 로그인 기록이나 세션 데이터베이스를 관찰할 수 없습니다. HTTP 응답을 분류하므로, 사전 인증만으로 부정적 결과를 강제할 근거가 되지 않습니다. 기타 예상치 못한 응답은 INCONCLUSIVE로 남고, 요청 실패는 ERROR로 남습니다.
패치 노출 여부를 확인하려면 Cisco의 권고 및 Software Checker를 사용하십시오.
공개 버전은 의도적으로 다음 기능이 없습니다:
운영자가 제공한 리터럴 IP 주소만 허용됩니다.
공인 IP는 명시적인 --allow-public 플래그가 필요합니다.
requests설치:
python3 -m pip install -r requirements.txt
사설/실험실 IP:
python3 CVE-2026-20079-checker.py --host 192.168.1.100
평가 권한이 있는 공인 IP:
python3 CVE-2026-20079-checker.py \
--host 203.0.113.10 \
--allow-public
targets.txt 생성:
# One literal IP address per line
192.168.1.100
192.168.1.101
실행:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--json results.json \
--csv results.csv
공인 IP를 포함한 승인된 목록의 경우:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--allow-public \
--workers 4 \
--json results.json
이 도구는 의도적으로 CIDR 범위를 허용하지 않습니다.
단일 호스트 스캔은 상세 블록을 표시합니다. 문서화된 실험실 어플라이언스(FMC 7.4.2 Build 172)와 예제 대상 192.168.1.100을 사용한 출력 예시:
[*] CVE-2026-20079 Read-Only Validation
[*] Target : 192.168.1.100
[*] Endpoint : /help/about.cgi
[*] Mode : Read-only / no exploitation
[+] Appliance : Cisco Secure Firewall Management Center for KVM
[+] Version : 7.4.2
[+] Build : 172
[+] Server : Mojolicious (Perl)
[*] Baseline HTTP : 302
[*] Session HTTP : 200
[*] Session Context : csm_processes
[*] Comparison : baseline=302 -> probe=200
[CONFIRMED] CVE-2026-20079 authentication-bypass behavior observed
[*] Reason : Server returned FMC content with HTTP 200 while explicitly identifying the csm_processes session context.
[*] Summary:
confirmed=1
not_confirmed=0
inconclusive=0
errors=0
[!] Note : NOT_CONFIRMED does not prove the appliance is patched
--targets FILE을 사용한 스캔은 TARGET, RESULT, VERSION, BASE, PROBE 열이 있는 간결한 표를 표시한 후 요약을 표시합니다. 누락된 세부 정보는 상세 보기에서 not observed로, 표에서는 -로 나타납니다. 제품 및 세션 컨텍스트 레이블은 정보 제공용이며 탐지 기준을 변경하지 않습니다. JSON/CSV는 기존의 모든 필드를 유지하고 product와 session_context를 추가합니다. 부정적 결과나 누락된 메타데이터 모두 패치 상태를 입증하지 않습니다.
| 결과 | 의미 |
|---|---|
CONFIRMED |
종료 코드:
0 — 확인된 발견 사항 없음1 — 모든 검사가 요청 오류로 실패2 — 최소 하나의 확인된 발견 사항64 — --allow-public 없이 공인 대상 제공종료 코드 0은 확인된 발견 사항이 없음을 의미하며, 여기에는 불확정 결과가 있거나 요청 오류와 미확인 결과가 혼합된 실행도 포함됩니다. 이는 패치 상태 판정이 아닙니다. 마찬가지로, 내보내기의 vulnerable_behavior: false는 확인 기준이 충족되지 않았음을 의미합니다.
개발 중에 읽기 전용 동작은 다음에 대해 재현되었습니다:
Cisco Secure Firewall Management Center for KVM
7.4.2 Build 172
해당 관찰을 문서화하는 목적은 재현성이며, Cisco의 권위 있는 취약/수정 릴리스 정보를 대체하지 않습니다.
docs/LAB-NOTES.md를 참조하십시오.
Cisco는 CVE-2026-20079를 **Critical (CVSS 10.0)**로 평가하며, 성공적인 익스플로잇이 root 접근을 초래할 수 있다고 밝힙니다. Cisco는 수정/핫픽스를 릴리스했으며 2026년 8월 기준 활발한 익스플로잇을 보고하고 있습니다.
이 스캐너에만 의존하지 말고 Cisco의 최신 권고 및 Software Checker를 따르십시오.
이 유틸리티는 소유하거나 평가에 대한 명시적 권한이 있는 시스템에만 실행하십시오.
네트워크 보안 테스트는 요청이 읽기 전용이더라도 모니터링 제어, 속도 제한, 사고 대응 프로세스 또는 서비스 제공업체의 남용 시스템을 트리거할 수 있습니다.
MIT. LICENSE를 참조하십시오.
| 관찰된 응답이 이 검사기에서 사용하는 읽기 전용 우회 지표와 일치합니다. |
NOT_CONFIRMED | 프로브가 리다이렉트 또는 HTTP 401/403을 반환했습니다. 우회가 관찰되지 않았으며, 필요한 세션이 없을 수 있습니다. 이는 "패치됨"과 동등하지 않습니다. |
INCONCLUSIVE | FMC 유사 또는 기타 비정상적인 동작이 관찰되었지만 검사기가 세션 ID를 확인할 수 없었습니다. |
ERROR | 네트워크/TLS/요청 실패로 판단이 불가능했습니다. |