Recent Articles
- SCI 논문 게재 - On the Analysis of Coverage Feedback in Fuzzing Proprietary System CW Research의 김재민 연구원, 길총경 대표님과경희대학교 PWNLAB 연구실의 합동 연구 결과로 SCI 저널 논문이 출판 되었습니다(논문명 : On the Analysis of Coverage Feedback in Fuzzing Proprietary System.출판일 : 2024.7.8. 저널명 : MDPI Applied Sciences. Impact Factor: 2.5) 본 논문은 Fuzzing을 통한 소프트웨어 취약점을 발견하는 과정에서의Coverage Feedback에 관한 효용성을 다양한 관점에서 실험한 연구의 결과물 입니다 본 논문은 Open Access 논문으로서 다음 링크를 통해 다운로드 가능합니다https://www.mdpi.com/2076-3417/14/13/5939..
- Issue 1473631 (Type Confusion in Harmony Set Methods) Introduction Issue 1473631은 JavaScript ES6 Harmony의 Set method들에서 발생하는 버그로, type confusion을 이용하여 arbitrary code execution이 가능한 취약점입니다. Environment Setting # install depot_tools cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$HOME/depot_tools:$PATH echo -e '\nexport PATH=$HOME/depot_tools:$PATH' >> ~/.zshrc # get V8 cd ~ mkdir V8 cd V8 fetch v8 cd v8 g..
- CVE-2024-0517 (Out of Bounds Write in V8) Introduction CVE-2024-0517은 Maglev가 derived constructor를 컴파일하는 과정에서 allocation folding을 처리할 때 발생하는 버그로, out of bounds write를 이용하여 arbitrary code execution이 가능한 취약점입니다. Environment Setting # install depot_tools cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$HOME/depot_tools:$PATH echo 'export PATH=$HOME/depot_tools:$PATH' >> ~/.zshrc # get V8 cd ~ mkd..
- CVE-2021-30551 (Type confusion in V8 in Google Chrome) Introduction CVE-2021-30551은 property interceptor가 JavaScript의 asynchronous task를 고려하지 않아 발생하는 버그로, type confusion을 이용하여 arbitrary code execution이 가능한 취약점입니다. Environment Setting Install Depot_tools Chromium 빌드를 위해 depot_tools를 설치합니다. cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$PWD/depot_tools:$PATH Download Chromium source code Chromium 소스 코드를 다운..
Popular Articles
- CVE-2019-5782 (Incorrect optimization assumptions in V8) Background Typer in Turbofan JavaScript의 dynamic type system은 사용자에게는 편의를 제공하지만, JS 엔진의 입장에서는 코드와 메모리 관리를 매우 까다롭게 합니다. 예를 들어, a + b라는 아주 간단한 덧셈 연산도 a와 b의 type에 따라 연산 결과의 type이 달라집니다. JIT 컴파일러는 피연산자와 연산 결과의 type에 대해 가능한 모든 경우를 고려하여 어떻게 처리할지 준비해 두어야 하는데, 이는 매우 비효율적인 작업일 것입니다. V8에서는 type speculation을 통해 이 문제를 해결합니다. V8의 JIT 컴파일러인 Turbofan은 함수가 호출될 때 연산 과정에서 사용되는 type 정보를 기록해 두었다가, runtime에 그 정보를 활용하..
- Chrome V8 Hole Exploit Prerequisite Knowledge Hole Object V8에서 hole은 빈 공간을 나타내는 객체로써, oddball type으로 사용자가 직접 컨트롤할 수 없는 객체입니다. /* v8/src/compiler/js-call-reducer.cc */ // The contract is that we don't leak "the hole" into "user JavaScript", // so we must rename the {element} here to explicitly exclude "the hole" // from the type of {element}. 만약 hole 객체에 접근하게 된다면 사용자는 undefined로 변환된 데이터만 확인할 수 있습니다. d8> %DebugPrint(%Th..
- CVE-2023-4427 PoC : Out of bounds memory access in V8. Introduction Sergei Glazunov of Google Project Zero에 의해 제보된 취약점으로 For-in 최적화 과정에서 발생하는 oob 취약점을 분석한 내용입니다. update The Stable and Extended stable channels has been updated to 116.0.5845.110 for Mac and Linux and 116.0.5845.110/.111 for Windows, which will roll out over the coming days/weeks. A full list of changes in this build is available in the log. Environment Setting Install depot_tools cd ~..
- CVE-2024-0517 (Out of Bounds Write in V8) Introduction CVE-2024-0517은 Maglev가 derived constructor를 컴파일하는 과정에서 allocation folding을 처리할 때 발생하는 버그로, out of bounds write를 이용하여 arbitrary code execution이 가능한 취약점입니다. Environment Setting # install depot_tools cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$HOME/depot_tools:$PATH echo 'export PATH=$HOME/depot_tools:$PATH' >> ~/.zshrc # get V8 cd ~ mkd..