CPU는 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고, 명령어 집합 구조(ISA)에 따라 이를 처리합니다. 그리고 연산의 결과를 다시 메모리에 적재한다. 만약 공격자가 메모리를 악의적으로 조작할 수 있다면 이에 의해 CPU도 잘못된 동작을 할 수 있다. 이를 메모리가 오염됐다고 표현하며, 이를 유발하는 취약점을 메모리 오염 취약점이라고 부른다. 이를 이해하기 위한 배경 지식으로 리눅스 메모리 구조(Memory Layout)에 대해 알아보고 프로세스 가상메모리의 각 구역이 어떤 정보를 담고 있는지 이해할 수 있다. 1. 세그먼트(Segment) 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분한다. 세그먼트란 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것인데, 크게 코드..