스택에 있는 리턴 주소를 실행 가능한 임의의 주소로 바꿔치는 기법을 Return-to-library 공격이라 부릅니다. 유닉스 계열 시스템에서는 C 런타임을 제공하는 libc 공유 라이브러리가 항상 링크된다는 점을 이용하는 경우가 많아서 Return-to-libc 공격이라고도 부릅니다. 이 중에서도 특히 system() 함수는 인자가 하나 뿐인데다가 임의의 프로그램을 실행할 수 있기 때문에 익스플로잇에 많이 사용됩니다.

최근에 DEP/NX를 활성화하여 데이터 영역은 실행하지 못하도록 원천적으로 봉쇄하는 경우가 늘어나고 있는데, Return-to-library 기법을 사용하면 이런 방어 체계를 우회할 수 있습니다. 그러나 ASLR (Address space layout randomization) 기법으로 Return-to-library 공격의 성공 확률을 낮출 수 있습니다. 라이브러리 로딩 순서를 바꾸거나, 부팅할 때마다 이미지 적재 위치를 바꾸면 임의의 리턴 주소를 찍어 맞춰야 하기 때문에 공격하기가 어렵게 됩니다.