Một Proof-of-Concept (PoC) mới vừa được ByteV0rtex công khai trên GitHub, mô tả một lỗi đọc vượt giới hạn bộ nhớ trong AppleKeyStore có khả năng làm rò rỉ địa chỉ Kernel và vô hiệu hóa KASLR trên iOS 26.6.
Repository được đặt tên CVE-2026-65343, tuy nhiên có một chi tiết đáng chú ý: mô tả kỹ thuật của repo hiện không trùng khớp với thông tin CVE do Apple và NVD công bố.
1.PoC của ByteV0rtex làm được gì?
Theo tác giả, vấn đề nằm trong hàm _LibSer_SEPControl_Deserialize thuộc AppleKeyStore.
Lỗi xảy ra khi hệ thống xử lý một thông điệp liên quan đến Secure Enclave nhưng không kiểm tra đầy đủ độ dài dữ liệu trước khi sao chép. Điều này có thể khiến Kernel đọc vượt ra ngoài buffer ban đầu và trả một phần dữ liệu bộ nhớ Kernel về tiến trình người dùng.
PoC cho biết vùng dữ liệu bị đọc vượt có thể chứa các địa chỉ dạng Kernel pointer. Nếu lấy được một địa chỉ thích hợp, nhà nghiên cứu có thể xác định KASLR slide, tức vị trí thực tế của Kernel trong bộ nhớ.
Đây là một bước quan trọng trong nhiều chuỗi khai thác Kernel vì KASLR vốn được thiết kế để khiến vị trí Kernel thay đổi ngẫu nhiên sau mỗi lần khởi động.
2.Không cần jailbreak để thử PoC
Một điểm đáng chú ý trong nghiên cứu là ứng dụng thông thường không thể trực tiếp mở kết nối AppleKeyStore do giới hạn sandbox.
ByteV0rtex vì vậy sử dụng cơ chế DYLD_INTERPOSE để theo dõi IOConnectCallMethod trong chính tiến trình ứng dụng.
PoC sau đó tạo một khóa P-256 trong Secure Enclave, thực hiện thao tác ký dữ liệu và cố gắng lấy ACM session handle thật được Security.framework sử dụng. Handle này sau đó được tái sử dụng để kiểm tra nhiều AppleKeyStore selector khác nhau.
Mã nguồn hiện thử tổng cộng 163 AKS selector và tìm các giá trị có hình dạng giống địa chỉ Kernel trong dữ liệu trả về.
Theo repo, PoC nhắm tới:
- iOS/iPadOS 26.6 build 23G71 và cũ hơn
- Thiết bị có Secure Enclave
- Không yêu cầu jailbreak
- Không yêu cầu sandbox escape trước khi thực hiện bước dò lỗi
Tuy nhiên khả năng lấy được ACM handle phụ thuộc vào thiết bị và phiên bản hệ thống. Trên một số cấu hình, thao tác Secure Enclave có thể được chuyển qua tiến trình secd, khiến PoC chỉ xác nhận đường dẫn lỗi chứ chưa chứng minh được việc đánh bại KASLR hoàn chỉnh.
3.fishhook không còn phù hợp trên iOS 26
Repo cũng đề cập một thay đổi đáng chú ý với iOS 26.
Phương pháp hook phổ biến fishhook cần chỉnh sửa GOT trong __DATA_CONST. Nhưng vùng này đã được bảo vệ chỉ đọc từ rất sớm, khiến việc ghi vào có thể dẫn đến KERN_PROTECTION_FAILURE và SIGBUS.
PoC vì vậy chuyển sang DYLD_INTERPOSE, cho phép dyld xử lý việc thay thế hàm ngay khi image được load, trước khi các cơ chế bảo vệ __DATA_CONST được áp dụng.
Đây cũng là chi tiết đáng quan tâm với các nhà phát triển công cụ nghiên cứu bảo mật trên iOS 26 trở lên.
4.Nhưng có vấn đề: CVE-2026-65343 chính thức không phải lỗi OOB Read
Đây là phần cần đặc biệt lưu ý.
Repository của ByteV0rtex đặt tên lỗi là CVE-2026-65343 và mô tả nó là AppleKeyStore Out-of-Bounds Read có thể làm lộ Kernel pointer.
Trong khi đó, tài liệu bảo mật chính thức của Apple lại ghi:
CVE-2026-65343
- Loại lỗi: Use-After-Free
- Thành phần: Kernel
- Tác động: kẻ tấn công từ xa có thể khiến hệ thống dừng hoạt động ngoài ý muốn
- Đã sửa trong iOS/iPadOS 26.6.1
Apple ghi nhận lỗi này cho Drinor Selmanaj (Sentry) và Surya Narayan Kushwaha.
NVD cũng phân loại CVE-2026-65343 là CWE-416 – Use After Free, với CVSS do CISA đánh giá ở mức 7.5.
5.CVE phù hợp hơn lại là CVE-2026-65349?
Trong cùng bản vá iOS 26.6.1, Apple công bố một lỗi Kernel khác mang mã:
- CVE-2026-65349
Apple mô tả đây chính xác là một Out-of-Bounds Read, có thể cho phép ứng dụng:
- làm hệ thống dừng đột ngột;
- hoặc đọc bộ nhớ Kernel.
Lỗi này được Apple sửa bằng cách cải thiện việc kiểm tra dữ liệu đầu vào.
NVD/GitHub Advisory cũng phân loại CVE-2026-65349 là CWE-125 – Out-of-Bounds Read, rất gần với cơ chế mà PoC ByteV0rtex đang mô tả.
Do đó, hiện có khả năng repository đã gắn nhầm mã CVE, hoặc PoC đang dựa trên một phân tích chưa được Apple công khai đầy đủ.
Cho tới khi tác giả hoặc các nhà nghiên cứu độc lập xác nhận thêm, chưa nên coi AppleKeyStore OOB Read trong repo là CVE-2026-65343 chính thức.
6.Mã nguồn
PoC được viết chủ yếu bằng Objective-C và hiện repository bao gồm mã nguồn nghiên cứu poc_aks_oob.m cùng tài liệu giải thích cơ chế khai thác.
Repo/PoC: ByteV0rtex/CVE-2026-65343 trên GitHub.






Chưa có bình luận. Hãy là người đầu tiên chia sẻ.