Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/idkwim/cve-2020-0022
Android SecurityBluetooth SecurityVulnerability AnalysisExploitationMobile SecurityPapers & ResearchBinary Exploitation
GitHubidkwim/cve-2020-0022

CVE-2020-0022

BlueFrag(CVE-2020-0022) Android Bluetooth 힙 오버플로 실험, GDB 크래시 분석 및 memcpy 익스플로잇 시도를 문서화한 연구 저장소입니다.

저장소 보기
8226년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-0022

Android 9-6은 유사한 Bluetooth 서브시스템을 가지고 있는 것으로 보이며, Android 5와 4는 다르다.

Android 9.0

BlueFrag 실험

패치:

https://android.googlesource.com/platform/system/bt/+/3cb7149d8fed2d7d77ceaa95bf845224c4db3baf

아래에서 패치된 조건에 도달했다. 좋아, 이해한 것 같지만, 어째서인지 프로세스를 크래시시킬 수 없다.

흠흠

BlueFrag

사실, memcpy()에 부호 있는 길이 값을 전달하는 데 성공했다.``` 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch reassemble_and_dispatch 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->offset 40 packet->len 304 HCI_ACL_PREAMBLE_SIZE 4
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch projected_offset 340 partial_packet->len 41
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch got packet which would exceed expected length of 41. Truncating. 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch memcpy packet->len 1 packet->offset 4 expr -3
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->data 0xacb14580 partial_packet->data + partial_packet->offset 0xacb145a8 packet->data 0xa553e110 packet->data + packet->offset 0xa553e114
02-16 01:44:49.097 6423 6469 W bt_hci_packet_fragmenter: fragment_and_dispatch fragment_and_dispatch

여전히 크래시는 없지만, 그래야 하는데.....


위의 예에서 memcpy 크기가 -3이면 이 값은 부호 없는 정수(4294967293)로 해석되고, memcpy는 매핑되지 않은 메모리로 인한 페이지 폴트가 발생할 때까지 계속되며 프로세스는 종료되어야 한다.

내 폰은 32비트라서 그런 것일 수도 있다. 모바일 기기는 Samsung S3 Neo+이다. 적어도 Android 9.0 테스트에서는 jemalloc을 사용한다.```
¯\_(ツ)_/¯

잘 보이는 것 같네요

GDB log memcpy

충돌이 발생하기 전에 많은 연결을 (일정 시간 동안) 열고 어떻게든 많은 메모리를 할당해야 할 것 같습니다.

여기서 우리는 4294967293, 거의 4GB를 밀어넣고 있습니다``` ¯_(ツ)_/¯

Swing과 leommxj가 Android 8에서 발견한 이 이상한 동작:

https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fbestwing.me%2FAndroid-8.1-memcpy-func.html
(중국어에서 번역됨)

Android 9에도 영향을 미칠 가능성이 있다. 확인해 볼 것이다.

사실 이것이 프로세스 컨텍스트에서 실행되지 않고, 아마도 인터럽트 컨텍스트에서 실행될 수도 있다. 그렇다면 아마도 이 결함은
숨겨질 수 있을 것이다.
도구 다운로드