⬢ DragonFlyBSD Kernel Audit
DF-3730 / run.2.log
← back to finding ↓ download raw
--- baseline (unfixed replica) ---
== DF-3730 ciss_cam_complete_fixup padstr overflow ==
CAM client INQUIRY: dxfer_len=36 (passes the ciss.c:3305 gate >= 36)

    buffer[32..47] = 66 61 69 6c 65 64 20 20 20 20 20 20 20 20 20 20 
    canary  [36..47] was 0xc0..0xcb

[BUG REPRODUCED] 12 bytes written past the end of the 36-byte INQUIRY data
buffer (revision field is 4 bytes at offset 32; padstr writes 16).
Kernel impact: 12-byte heap overflow past a kmalloc'd CAM buffer with
status-string content (root/operator via CAM pass-through).
    write at buffer+36 (>= 36)
RUN_EXIT=0
--- fixed replica (-DFIXED) ---
== DF-3730 ciss_cam_complete_fixup padstr overflow ==
CAM client INQUIRY: dxfer_len=36 (passes the ciss.c:3305 gate >= 36)

    buffer[32..47] = 66 61 69 6c c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb 
    canary  [36..47] was 0xc0..0xcb

[FIXED] revision padstr bounded to SID_REVISION_SIZE (4): no bytes past the buffer.
RUN_EXIT=0
OVERALL_EXIT=1