
استغلال ثغرة أمنية في نواة أندرويد خاصة بجهاز OnePlus 13 للإصدار CVE-2026-64560، يوفر صلاحيات root مؤقتة عبر ADB shell مع حمولات موثّقة وأدوات نقل.
OP5D0DL1) CVE-2026-64560تكييف خاص بالجهاز لإثبات مفهوم CVE-2026-64560 على Android لإصدارات OnePlus 13 (PJZ110) المحددة أدناه. يوفّر وصولاً مؤقتًا بصلاحيات الجذر للتشغيل الحالي عبر أداة مساعدة تعمل من ADB-shell فقط.
[!WARNING] هذا كود استغلال للنواة تجريبي. قد يؤدي إلى إعادة تشغيل الجهاز، أو إفساد حالة النواة، أو فقدان البيانات. استخدمه فقط على جهاز تملكه أو لديك تفويض صريح باختباره. احتفظ بنسخة احتياطية من البيانات المهمة أولاً.
يستهدف هذا المستودع صور النواة، وتستهدف ملفاته التعريفية بصمات الإصدار؛ وقد تُغيّر تحديثات OTA أحدهما دون الآخر. كلا الإصدارين أدناه يشحنان نواة متطابقة بايتًا ببايت، لذا يتشاركان كل الإزاحات ويختلفان فقط في سلسلة بوابة الجهاز. يُعدّ docs/BUILDS.md الفهرس وشجرة القرار لصورة جديدة — ابدأ من هناك.
BP2A.250605.015 | CP2A.260605.016 | |
|---|---|---|
| Android | 16 | 17 |
| Fingerprint | OnePlus/PJZ110/OP5D0DL1:16/BP2A.250605.015/V.58c08ac-32ff28e-33c0954:user/release-keys | OnePlus/PJZ110/OP5D0DL1:17/CP2A.260605.016/V.34246cc-e2d62b-e2d628:user/release-keys |
| Kernel | 6.6.118-android15-8-g9bc34d5b0c79-abogki537459655-4k | same |
| Page size / CPUs | 4 KiB / 8 online | same |
| Decoded Image SHA-256 | ee5ee448d2985eeeb7a8b5ad2e1efc34eeb410a8beae0ab484504d739124d613 | same |
| Payload | bin/cve-2026-64560-fanout-op13-bp2a.250605.015 | bin/cve-2026-64560-fanout-op13-cp2a.260605.016 |
يرفض المشغّل أي بصمة غير متوقعة ويتحقق من كل حمولة مضمّنة قبل التنفيذ. لا يحتوي هذا المستودع على صور برامج ثابتة، أو مفاتيح أجهزة، أو أسرار خاصة بالجهاز.
المتطلبات:
adb على PATHمن جذر المستودع:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
بعد ROOT_SUCCESS، يمكن لأي طرفية جديدة فتح صدفة الجذر المؤقتة:
adb -s <serial> shell -T /data/local/tmp/su
شغّل id للتحقق من uid=0(root). يستمر الوصول للتشغيل الحالي فقط؛ أعد التشغيل بعد إعادة تشغيل الجهاز. لا يتم تعديل أي قسم boot أو vendor أو system.
يحتوي الاستغلال على سباق نواة احتمالي. تصل السلسلة إلى مرحلة الجسر بشكل موثوق وتتجاوز بوابة القراءة الخاصة بها في حوالي تشغيل واحد من كل ثمانية، لذا فإن جولة فارغة من عمليات التشغيل ليست دليلاً على وجود خلل — خصّص ميزانية من عمليات التشغيل، وانظر docs/BUILDS.md للعدّاد الوحيد الذي يبدو كإشارة فشل وليس كذلك.
scripts/boot-campaign.sh هو حلقة التشغيل في POSIX sh، للمضيفين الذين لا يتوفر لديهم مضيف PowerShell الخاص بـ scripts/root.ps1. كلاهما يطبّق نفس البوابات.
Android NDK r29 و API 35 هما الإعدادات الافتراضية للبناء القابل للتكرار. لا يتوفر NDK افتراضيًا، لذا مرّر جذره:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
يبني السكربت استراتيجيات الاستغلال وأداة su المؤقتة، ويجرّد المخرجات، ويتحقق من قيم SHA-256 المثبّتة لها.
rotate مبنيّ لكنه غير مُرقّى عن قصد: لقد أسقط النواة على هذا الجهاز ولم يُعَد التحقق منه منذ إعادة معايرة المؤقّت.
python tools/extract_image.py <boot.img> <out> # compare the Image digest first
python tools/port_target.py --profile profiles/op13/<BUILD>.json
كل ما يملكه إصدار ما يُسمّى باسم ذلك الإصدار، لذا لا يتعارض إصداران لجهاز واحد أبدًا. انظر docs/BUILDS.md لشجرة القرار وdocs/PORTING.md للقائمة الكاملة.
إطار الاستغلال الذي يعدّله هذا المستودع — مصادر الاستغلال، ومراحل الاعتماد والاستعادة، وأداة su المؤقتة، والبناء القابل للتكرار، والمشغّل التكيفي، ومجموعة أدوات النقل — يأتي من تكييف Xiaomi 15 dada:
تم قياس إزاحات OnePlus 13 وضبط السباق والتحقق هنا على هذا الجهاز بدلاً من نقلها؛ هدفا النواة صورتان مختلفتان، لذا تختلف تقريبًا كل العناوين. تم الاحتفاظ بملف تعريف dada والحمولات كمرجع تم التحقق من الإطار عليه في الأصل.
إثبات المفهوم الأصلي، والثغرة نفسها، يسبقان كليهما:
المراجعات الدقيقة وإصلاحات Linux مدرجة في docs/UPSTREAM.md.
Apache License 2.0، موروث من العمل الأصلي. انظر LICENSE وNOTICE.
| Path | Purpose |
|---|
bin/ | Verified AArch64 release payloads |
profiles/op13/<BUILD>.json | Target descriptions, one per build fingerprint |
profiles/dada/ | The Xiaomi 15 target this framework came from, kept as reference |
src/ | C sources, generated per build from the shared templates |
targets/ | Measured offset sets for a kernel image |
evidence/ | Trimmed chain logs from runs that landed root |
scripts/boot-campaign.sh | Boot loop with thermal, settle, and timeout gates |
scripts/sweep.sh | Several tuning settings in one boot |
scripts/root.ps1, build.ps1, new-target.ps1 | Runner, build, and scaffolding |
tools/extract_image.py | Kernel image out of a boot dump, both digests |
tools/kallsyms_extract.py | Symbol table from a raw arm64 Image (self-validating) |
tools/ksym.py | Symbol lookup in an extracted table |
tools/btf_offsets.py | Struct member offsets from the Image's BTF blob |
tools/port_target.py | Generates a build source from a template + profile |
docs/BUILDS.md | Build index, decision tree, campaign pitfalls |
docs/OP13.md | Derivation of every offset, with the evidence |
docs/PORTING.md | New-build adaptation and promotion checklist |
docs/UPSTREAM.md | Upstream provenance and fixed revisions |