β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-1312

Unvalidated HBA-supplied index into srb[256] in itl/mv request callbacks

Summary

hptiop_request_callback_itl at :339: srb=hba->srb[index&0x3FFFFFFF] (256 entries). :348: srb=hba->srb[index&0x7FFFFFFF]. hptiop_request_callback_mv at :532: srb=hba->srb[context>>16] (range 0-0xFFFF). No bounds check vs HPT_SRB_MAX_QUEUE_SIZE=256. Malicious/buggy HBA returns OOB index -> wild srb ptr -> deref srb->ccb/dma_map -> panic or code exec. mvfrey callback correctly masks &0xFF. Fix: validate masked index<256.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-1312 Β· 1 files
FileTypeDescriptionSize
VERDICT.md verdict verification verdict 918 B ↓ raw
VERDICT.md verdict verification verdict
↓ download raw

DF-1312 - Verification Verdict

Status: reproduced (reproduced=1) Impact: none Confidence: likely

Finding

Unvalidated HBA-supplied index into srb[256] in itl/mv request callbacks

Source Location

sys/dev/raid/hptiop/hptiop.c:336-532

Verdict

Source-confirmed (complex fix): Unvalidated HBA-supplied index into srb[256] in itl/mv request callbac. No diff in batch.

Fix Status

not_applicable: source defect confirmed; complex fix not included in batch build

Summary

hptiop_request_callback_itl at :339: srb=hba->srb[index&0x3FFFFFFF] (256 entries). :348: srb=hba->srb[index&0x7FFFFFFF]. hptiop_request_callback_mv at :532: srb=hba->srb[context>>16] (range 0-0xFFFF). No bounds check vs HPT_SRB_MAX_QUEUE_SIZE=256. Malicious/buggy HBA returns OOB index -> wild srb ptr -> deref srb->ccb/dma_map -> panic or code exec. mvfrey callback correctly masks &0xFF. Fix: validate masked index<256.

Fix verification

not_testable
baseline reproduced→ patch + rebuild →patched clean

source defect confirmed; complex fix not included in batch build

source defect confirmed; complex fix not included in batch build
combined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Low severity)

Evidence (decisive lines)

Source-confirmed: hptiop itl/mv request callbacks use HBA-supplied index into hba->srb[256] without masking to valid range. Complex fix. HW-gated.

Verified recommended fix

Source-confirmed: hptiop itl/mv request callbacks use HBA-supplied index into hba->srb[256] without masking to valid range. Complex fix. HW-gated.

Verdict

Source-confirmed: hptiop itl/mv request callbacks use HBA-supplied index into hba->srb[256] without masking to valid range. Complex fix. HW-gated.