해제 후 사용 취약점
해제 후 사용 취약점은 프로그램이 이미 해제한 메모리 객체를 다시 읽거나 쓰거나 호출하는 약점입니다.
해제 후 사용 취약점
복잡한 객체 수명, 비동기 처리, 참조계수 오류, 경쟁 상태로 포인터가 남을 수 있습니다. 해제된 영역에 공격자가 제어하는 다른 객체가 배치되면 잘못된 타입과 함수 포인터가 사용될 수 있습니다.
핵심 정보
발생 원인과 악용 조건
브라우저, 문서 처리기, 커널, 네트워크 서비스에서 발견되며 메모리 배치와 완화 우회가 필요한 경우가 많습니다. 충돌과 정보노출, 코드 실행 결과가 가능합니다.
운영 효과는 데이터 생성 지점, 처리 목적, 사용자와 관리자 권한, 외부 연동, 백업과 로그, 삭제 절차를 연결할 때 확보됩니다. 설계 문서와 실제 운영 상태가 다를 수 있으므로 설정값, 표본 데이터, 접근기록, 변경 이력을 근거로 검증합니다.
영향 범위
성공 시 프로세스 권한으로 코드가 실행되어 브라우저 세션과 개인정보, 시스템 자격증명이 노출될 수 있습니다. 샌드박스 탈출과 결합되면 피해가 커집니다.
개인정보 관련 위험에는 기밀성 침해, 잘못된 수정과 삭제, 서비스 중단, 부정확한 프로파일링, 차별적 의사결정, 계정 탈취, 사칭과 2차 피싱이 포함됩니다. 위험 평가는 정보의 민감도, 변경 가능성, 결합 가능성, 노출 기간, 대상 인원, 공격자의 실제 접근 능력을 반영합니다.
진단과 우선순위 판단
객체 생성·해제·참조 경로와 동시성, 소유권 모델을 검토합니다. AddressSanitizer와 퍼징, 충돌 덤프, 반복 가능한 입력을 활용합니다.
검토 결과에는 적용 범위, 남은 위험, 책임자, 개선 기한, 재검증 조건을 기록합니다. 외부 서비스와 오픈소스 구성요소가 관련되면 계약서와 보안 공지, 버전, 데이터 처리 위치, 하위 수탁·의존 관계도 확인합니다.
예방과 완화
- 명확한 소유권과 수명 모델, 안전한 포인터를 사용합니다.
- 해제 후 참조를 무효화하고 비동기 콜백을 취소합니다.
- 메모리 안전 언어와 런타임 격리를 우선 검토합니다.
- 퍼징·Sanitizer·회귀 테스트를 개발 파이프라인에 적용합니다.
보호조치는 예방, 탐지, 대응, 복구 단계에 나누어 배치합니다. 한 통제가 우회되거나 오작동해도 피해가 곧바로 전체 데이터로 확산되지 않도록 권한·네트워크·데이터·로그 통제를 겹쳐 적용합니다.
혼동하기 쉬운 개념
누수는 메모리를 해제하지 못하는 문제이며 UAF는 해제된 메모리를 계속 사용하는 문제입니다.