Critical Severity
Published: Oct 26, 2026

[GitHub] matisse-public

Rce
Type
N/A
CVSS Score
1
Views
Anonymous
Author

Description

Redmi K50 Pro (matisse / MT6983 / kernel 5.10.209): uid=0 exploit + KernelSU LKM late-load on a locked bootloader. Full source, offsets, build recipe and write-up.

# matisse-public — Redmi K50 Pro (MT6983) / kernel 5.10.209 提权与 KernelSU 装载记录

> **English TL;DR** — A fully documented, from-scratch writeup + toolkit for obtaining `uid=0` with a
> kernel SID on a **Redmi K50 Pro (matisse, MediaTek MT6983, kernel 5.10.209)** and loading **KernelSU via
> LKM late-load**, without unlocking the bootloader. Full source is published on purpose: a root tool you
> cannot audit is a root tool you should not trust.

---

## 为什么把源码全部公开

这个仓库做的事是 **提权**。任何"能给你 root"的闭源工具,都应当被怀疑:
它同样能悄悄做别的事,而你无法验证。所以我们**主动公开全部源码、日志格式、失败过程与复现步骤**,
包括:

- 完整的 exploit 源码(`payload_src/`)—— 你可以逐行读、自己编译、比对哈希
- 全部脚本与判据(`tools/`、`ksu_persist.sh`)—— 包括**失败的那些尝试**
- 真实的内核 panic 摘录(`evidence/`)—— 证明我们遇到的崩机与其根因
- 构建配方与产物哈希(`payload_src/mt87_build/BUILD_INFO.txt`、`SHA256SUMS`)—— 供你比对
- 明确的**适用边界与免责声明**(见下)

**不包含**:任何设备标识(序列号 / MAC)、个人数据。第三方派生代码的来源与许可**逐条列在 [`NOTICE.md`](NOTICE.md) 与 [`payload_src/PROVENANCE.md`](payload_src/PROVENANCE.md)**。

---

## 成果(可复核)

| 项 | 实测证据 |
|---|---|
| `uid=0` | `su -c id` → `uid=0(root) gid=0(root) groups=0(root)` |
| **kernel SID** | 同一行的 `context=u:r:ksu:s0` |
| **KernelSU 已加载** | `/proc/modules` → `kernelsu … - Live` |
| 装载器日志 | `/data/local/tmp/ksu_go.log` → `uid=0` / `load_policy rc=0` / `late-load rc=0` / `modules: 1` |
| 设备未崩机 | 全程同一 `boot_id`,`uptime` 连续增长 |

完整战报:[WIN_20261003_1620_uid0_kernelsu.md](WIN_20261003_1620_uid0_kernelsu.md)

> **核验**:本仓库发布产物的哈希见 [`SHA256SUMS`](SHA256SUMS);exploit 产物的构建配方与期望 sha256 见
> [`payload_src/mt87_build/BUILD_INFO.txt`](payload_src/mt87_build/BUILD_INFO.txt)。若你不信任任何二进制,请只使用源码自行编译。

---

## 它做了什么(高层)

1. **R 轮**:在 `pselect` 的 `fd_set` 上做堆布局,配合 `rt_waiter` 释放后的悬垂 `pi_blocked_on`
触发 `rt_mutex_adjust_prio_chain` 走链,落到一个受控写入(写 `task->real_cred`)。
2. **E5 轮**:把 SELinux 的 enforcing 清零(Per-Android 的 `enforcing-8` 写),进入 Permissive。
3. **C 轮**:写 `task->cred`(真正的 uid=0 + kernel SID)。
4. **gate 分支**(本仓库的关键补丁):在**真正拿到 uid=0** 的那一刻,
`system("sh /data/local/tmp/ksu_go.sh &")` —— 用官方 userspace 装载器 `k

Community Rating
0

Login to rate this exploit

Quick Actions