
이 저장소는 Windows WinSock용 보조 함수 드라이버(`afd.sys`)의 중요한 Use-After-Free(UAF) 취약점인 CVE-2026-68820에 대한 완화를 시연하는 개념 패치를 포함하고 있습니다.
이 저장소는 Windows WinSock용 보조 함수 드라이버(afd.sys)의 중요한 Use-After-Free(UAF) 취약점인 CVE-2026-68820에 대한 완화를 시연하는 개념 패치를 포함합니다.
이 결함의 적극적인 악용을 통해 로컬의 인증된 공격자는 경쟁 조건을 유발하고, 실행 흐름을 가로채며, SYSTEM 권한으로 권한 상승을 달성할 수 있습니다.
이 취약점은 해제(teardown) 단계에서 소켓 객체의 수명 관리가 부적절하여 발생합니다. 취약한 상태에서 afd.sys는 컨텍스트 버퍼를 해제하지만 포인터를 즉시 NULL로 설정하지 않습니다. 이 기간 동안 동시 스레드가 소켓 상태에 접근하려고 하면 해제된 메모리(UAF)에 접근하게 됩니다.
이 패치는 결정적(deterministic) 수명 관리 모델을 도입합니다:
KeAcquireSpinLock을 구현합니다.Socket->ContextBuffer = NULL)를 명시적으로 NULL로 설정한 다음에 메모리를 해제합니다.InterlockedDecrement를 사용하여 모든 참조가 해제된 경우에만 부모 객체가 소멸되도록 보장합니다.Windows는 폐쇄형 소스 운영 체제입니다. 이 코드는 커널 풀의 경쟁 조건을 해결하는 데 필요한 정확한 논리 구조와 Windows 드라이버 모델(WDM) API 호출을 교육적으로 표현한 것입니다.
MIT License