DF-2462 / manifest.json
{ "finding_id": "DF-2462", "title": "ism_stop frees session while CAM/ic_action and sysctl handlers can still dereference it (UAF)", "target": "sys/dev/disk/iscsi/initiator/isc_sm.c:724-777 (victims: isc_cam.c:201-309, isc_sm.c:630-676)", "verdict": "reproduced", "impact": "leak", "reproduce": { "build": "./build.sh", "run": "./run.sh", "fixed_ab": "./make_fixed.sh && ./run_fixed.sh", "expected": "S2 cpi.max_lun=0x51515150 (attacker value read from freed chunk); S3 planted 0x50..-0x6a.. values in the sysctl output; S4 three writes into the freed chunk; S5 Fatal trap 12 at scsi_encap+0x445 (guest dies); S6 uid-1001 reads succeed in-window; fixed kernel: S0 bit-identical, S1 CAM_DEV_NOT_THERE, S2/S3/S4 live values + drain holds teardown, S5 guest survives" }, "kernel_refs": [ "sys/dev/disk/iscsi/initiator/isc_sm.c:724", "sys/dev/disk/iscsi/initiator/isc_sm.c:734", "sys/dev/disk/iscsi/initiator/isc_sm.c:740", "sys/dev/disk/iscsi/initiator/isc_sm.c:752", "sys/dev/disk/iscsi/initiator/isc_sm.c:765", "sys/dev/disk/iscsi/initiator/isc_sm.c:771", "sys/dev/disk/iscsi/initiator/isc_sm.c:772", "sys/dev/disk/iscsi/initiator/isc_sm.c:774", "sys/dev/disk/iscsi/initiator/isc_sm.c:777", "sys/dev/disk/iscsi/initiator/isc_sm.c:630", "sys/dev/disk/iscsi/initiator/isc_sm.c:642", "sys/dev/disk/iscsi/initiator/isc_sm.c:656", "sys/dev/disk/iscsi/initiator/isc_cam.c:202", "sys/dev/disk/iscsi/initiator/isc_cam.c:211", "sys/dev/disk/iscsi/initiator/isc_cam.c:215", "sys/dev/disk/iscsi/initiator/isc_cam.c:254", "sys/dev/disk/iscsi/initiator/isc_cam.c:281", "sys/dev/disk/iscsi/initiator/isc_cam.c:57", "sys/dev/disk/iscsi/initiator/iscsi_subr.c:442", "sys/dev/disk/iscsi/initiator/iscsi.c:176", "sys/dev/disk/iscsi/initiator/iscsi.c:851" ], "artifacts": [ "README.md", "VERDICT.md", "df_pre.c", "df_post.c", "gen.sh", "build.sh", "run.sh", "make_fixed.sh", "run_fixed.sh", "fix.diff", "build.log", "installkernel.log", "gen.log", "run.log", "run.s7.log", "run.s5.log", "panic.txt", "panic.s5.fresh.txt", "leak_sample.txt", "fixed_gate.log", "fix_build.log", "fix_installkernel.log", "gen_fixed.log", "run_fixed.log", "run_fixed_s5.log", "run_fixed_s7.log", "s6_fixed_read.log", "serial_fixed_debug.txt", "env.txt", "verdict.json", "manifest.json" ] } |