Security/Exploit

    CVE-2009-3895, CVE-2012-2836 - Heap-based Buffer Overflow 취약점

    취약점 개요CVE-2009-3895, CVE-2012-2836 는 libexif 라이브러리 버전 0.6.14에서 발견된 힙 기반 버퍼 오버플로우(Heap-based Buffer Overflow) 취약점이다. 환경 구성퍼징할 libexif-0.6.14를 다운로드하고 압축을 해제 후 빌드한다.wget https://github.com/libexif/libexif/archive/refs/tags/libexif-0_6_14-release.tar.gztar -xzvf libexif-0_6_14-release.tar.gzcd libexif-libexif-0_6_14-release/autoreconf -fvi./configure --enable-shared=no --prefix="$(pwd)/install/"ma..

    CVE-2020-27786 - race condition 기반 Use-After-Free 취약점

    ALSA rawmidi 드라이버에서 copy_from_user() 수행 중 lock이 해제되는 틈에 다른 스레드가 ioctl로 버퍼를 해제할 수 있는 race condition 기반 Use-After-Free 취약점 Referenceshttps://www.hacktivesecurity.com/blog/2022/06/13/linux-kernel-exploit-development-1day-case-study/https://github.com/kiks7/CVE-2020-27786-Kernel-Exploitfdsf

    GO runtime 해부 #0 Monkey Patching

    Go 프로그램 부트스트랩go 프로그램 시작 과정은 다음과 같다._rt0 (Entry Point) ↓_main ↓runtime.rt0_go (스케줄러 및 첫 고루틴 설정) ↓runtime.main ├→ runtime.init ├→ main.init └→ main.main (우리가 작성한 코드) ↓exit(0) 핵심 개념은 다음과 같다. 우리가 작성하는 main.main()은 진짜 시작점이 아님Go 런타임이 먼저 초기화 작업 수행:스케줄러 설정메모리 할당자 초기화GC 설정고루틴 스택 준비 진입점이 main 위에서 시작한다는 점이 중요하다. 진짜 시작점은 _rt0 이다. main()은 런타임 초기화의 끝 에 해당한다.이게 왜 중요할까 panic과 defer의 내부 구조panic은 함수가 아니다g..