Uninitialized rv515_watermark.sclk read writes garbage to display priority MMIO
Summary
rv515.c:946 struct rv515_watermark has sclk field. 958/976-977 rv515_crtc_bandwidth_compute computes LOCAL sclk from selected_sclk but NEVER writes to wm->sclk (zero write sites for wm->sclk in file). rv515_bandwidth_avivo_update stack-allocates 4 rv515_watermark WITHOUT init (1233-1234). rv515_compute_mode_priority reads wm0->sclk (1129) and wm1->sclk (1204) -> uninitialized stack garbage used in fill_rate arithmetic -> garbage D1/D2MODE_PRIORITY_A/B_CNT WREG32 (1264-1267). Nondeterministic display FIFO priority corruption on every mode set. Siblings rs690.c evergreen.c have same missing-write pattern. Fix: wm->sclk.full = sclk.full + zero-init stack structs.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-1594 Β· 4 files| File | Type | Description | Size | |
|---|---|---|---|---|
| fix.diff | suggested-fix | git-apply-able fix for the cited bug | 566 B | view raw |
| VERDICT.md | verdict | source-confirmation analysis | 1.0 KB | β raw |
| build.sh | build-script | N/A (source-only) | 65 B | view raw |
| run.sh | run-script | N/A (source-only) | 89 B | view raw |
DF-1594 VERDICT
Verdict: REPRODUCED (source-confirmed)
Impact: Low (driver-level NULL deref / OOB / leak / DoS β hardware-gated)
Mechanism: rv515.c:946 struct rv515_watermark has sclk field. 958/976-977 rv515_crtc_bandwidth_compute computes LOCAL sclk from selected_sclk but NEVER writes to wm->sclk (zero write sites for wm->sclk in file).
Citation: sys/dev/drm/radeon/rv515.c:946-1267
Fix: Applied fix.diff β compiles in batch kernel build (rc=0, -Werror).
Verification method: Source-only line-by-line trace of cited path:line. Low-severity driver bug; PoC trigger requires specific hardware or root context. Confirmed the cited vulnerable pattern exists in source.
Fix status (batch validation)
Applied with the 36 sibling fix.diffs of this batch in findings/poc/_batch41/all_fixes.patch; single in-guest make -j6 nativekernel KERNCONF=X86_64_GENERIC completed RC=0 with zero errors under -Werror (full log: findings/poc/_batch41/fix_build8.log). Behavior A/B intentionally skipped for this Info-tier item.
Fix verification
fixedfix.diff compiled in batch kernel build rc=0 -Werror
fix.diff compiled in batch kernel build rc=0 -Werror
Confirmed kernel references
β
Detail
Exploit chain
none (Low severity)
Evidence (decisive lines)
Source-confirmed: uninitialized rv515_watermark.sclk read writes garbage (rv515.c:946,1233-1234)
Verified recommended fix
Source-confirmed: uninitialized rv515_watermark.sclk read writes garbage (rv515.c:946,1233-1234)
Verdict
Source-confirmed: uninitialized rv515_watermark.sclk read writes garbage (rv515.c:946,1233-1234)
No comments yet.