{
  "finding_id": "DF-4363",
  "file": "sys/dev/raid/mps/mps_config.c",
  "title": "mps_config_get_man_pg10 allocates fixed 0x5C buffer but DMAs firmware PageLength*4 bytes into it - kernel heap overflow",
  "verdict": "reproduced",
  "impact": "panic",
  "reproduce": {
    "build": "cc -O2 -Wall -Wextra -o harness harness.c",
    "run": "./harness 24 ; ./harness 23 ; ./harness 255",
    "expected": "PageLength>=24 faults on guard page (4..928 bytes past the 92-byte allocation); PageLength=23 passes exactly; baseline exit 1 on overflow, fixed build (-DFIXED) exits 0 everywhere"
  },
  "kernel_refs": [
    "sys/dev/raid/mps/mps_config.c:249",
    "sys/dev/raid/mps/mps_config.c:254",
    "sys/dev/raid/mps/mps_config.c:260",
    "sys/dev/raid/mps/mpsvar.h:105",
    "sys/dev/raid/mps/mps.c:2099",
    "sys/dev/raid/mps/mps_sas.c:3320",
    "sys/dev/raid/mps/mps_pci.c:143"
  ],
  "artifacts": [
    "harness.c", "build.sh", "run.sh", "run.log", "env.txt", "fix.diff",
    "README.md", "VERDICT.md", "manifest.json", "verdict.json"
  ]
}
