| 제목 | libimobiledevice fa0f79190142bc309307967c058f89c1b36eb6b8 - version 1.4.0 Memory corruption |
|---|
| 설명 | unpaired key → strdup(NULL)
Location: src/afc.c:640-645
for (ptr = kvps; *ptr; ptr++) {
if (!strcmp(*ptr, key)) {
*value = strdup(*(ptr+1)); // no check that a value follows
break;
}
}
Root cause. Device info is a flat NUL-separated key/value list turned into a char** with a NULL sentinel. An odd list (lone key) leaves the matched key's ptr+1 pointing at the NULL sentinel → strdup(NULL) → strlen(NULL) → SIGSEGV.
Trigger (peer): reply to GET_DEVINFO with body ModelNumber\0 only; victim calls afc_get_device_info_key(client, "ModelNumber", &value).
Impact. Reliable NULL deref / crash (DoS). With prior Bug heap corruption, the sentinel can be attacker-influenced → arbitrary read into strdup |
|---|
| 원천 | ⚠️ https://bohmid-com.vercel.app/#/article/blog-afc-writeup |
|---|
| 사용자 | ahmed0000 (UID 51651) |
|---|
| 제출 | 2026. 10. 01. PM 05:21 (25 날 ago) |
|---|
| 모더레이션 | 2026. 10. 25. PM 06:44 (24 days later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 426298 [libimobiledevice 까지 1.4.0 Device Info src/afc.c afc_get_device_info_key value 메모리 손상] |
|---|
| 포인트들 | 20 |
|---|