⬢ DragonFlyBSD Kernel Audit
DF-4910 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4910",
  "title": "Unsynchronized aconnector->dc_sink teardown: dm_dp_destroy_mst_connector (lockless destroy work) races dm_dp_mst_get_modes (mode_config.mutex) -> dc_sink leak + dangling dc_sink->priv + deterministic DF-1966 panic after MAX_SINKS_PER_LINK exhaustion",
  "verdict": "untested",
  "impact": "none (untested; assessed: dos/leak on AMD MST hardware)",
  "confidence": "likely",
  "reproduce": {
    "build": "cc -O2 -Wall -o mst_race_trigger mst_race_trigger.c",
    "run": "./run.sh  (requires AMD amdgpu-DM GPU + DP MST hub; flap topology while running)",
    "expected": "after 1-4 races, next monitor connect panics at amdgpu_dm_mst_types.c:243 (dc_sink NULL) with all 4 remote_sink slots leaked; on this guest: NO_AMD_PCI_DEVICE / NO_DEV_DRI (path unreachable)"
  },
  "kernel_refs": [
    "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c:232-244",
    "sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c:386-397",
    "sys/dev/drm/drm_dp_mst_topology.c:3093-3132",
    "sys/dev/drm/drm_probe_helper.c:400",
    "sys/dev/drm/drm_connector.c:1734-1763",
    "sys/dev/drm/amd/display/dc/core/dc.c:1750-1847",
    "sys/dev/drm/amd/display/dc/dc.h:45"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "mst_race_trigger.c", "build.sh", "run.sh",
    "run.log", "env.txt", "fix.diff", "verdict.json", "manifest.json"
  ]
}