Description
In the Linux kernel, the following vulnerability has been resolved: binfmt_elf_fdpic: only honour the first PT_INTERP The program header scan handles PT_INTERP from a switch nested in the scan loop, so its break leaves the switch and not the loop. A binary carrying more than one PT_INTERP runs the case again and overwrites both interpreter_name and interpreter. The previous name allocation leaks and so does the previous interpreter reference, along with the write denial open_exec() took on it. The denial is never released, so the file stays unwritable for as long as the system runs. An unprivileged caller reaches this with a crafted binary and repeats it at will. binfmt_elf stops at the first PT_INTERP. Do the same here. The flaw dates back to the driver's introduction in the pre-git history tree introduced in v2.6.11 by 91808d6ebe39 ("[PATCH] FRV: Add FDPIC ELF binary format driver").
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 9854538349aaf6fb88ed33b56987954ac1716151affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3c31397b0a75310217f1f2f3c7bdfd8af67aec4caffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 849a7bd9d266e43a457db5c6b322600f916a2127affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < e4563e07ef5c938d5332c5c44721db976f214bc6affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 21eaf5594a33d16343a011c752624099c30e918faffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 89b9121c3b0162655fc2f190b714ae64f1aa8caeaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 69ecc199880bf7e8d06224c82dc411d18f9285f8affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 3349ef6a366a61d631f6a263d12cea240957719daffected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/9854538349aaf6fb88ed33b56987954ac1716151 ↗
- https://git.kernel.org/stable/c/3c31397b0a75310217f1f2f3c7bdfd8af67aec4c ↗
- https://git.kernel.org/stable/c/849a7bd9d266e43a457db5c6b322600f916a2127 ↗
- https://git.kernel.org/stable/c/e4563e07ef5c938d5332c5c44721db976f214bc6 ↗
- https://git.kernel.org/stable/c/21eaf5594a33d16343a011c752624099c30e918f ↗
- https://git.kernel.org/stable/c/89b9121c3b0162655fc2f190b714ae64f1aa8cae ↗
- https://git.kernel.org/stable/c/69ecc199880bf7e8d06224c82dc411d18f9285f8 ↗
- https://git.kernel.org/stable/c/3349ef6a366a61d631f6a263d12cea240957719d ↗