# DF-0060 — REPRODUCED (source-only, root-only kldload)

## Build
```sh
sh build.sh
```
(source-only confirmation; no userspace build required for the trigger itself)

## Run
```sh
sh run.sh
```

## Expected
none (root-only) on the unfixed kernel; after applying `fix.diff` the cited defect is closed.
This finding was verified by source-tracing `sys/kern/link_elf.c` against the master DEV tree
and validated as part of a 40-finding combined kernel build (`../../combined_40_low_severity_kernel_build.log`).

## Mechanism
parse_dynamic DT_HASH case: hashtab=ef->address+dp->d_un.d_ptr with no d_ptr<lf->size check; immediate hashtab[0]/hashtab[1] deref → wild read from ef->address+arbitrary; nbuckets/nchains are attacker-controlled. Same gap in DT_STRTAB/DT_SYMTAB/DT_REL/DT_RELA/DT_JMPREL/DT_PLTGOT.
