⬢ DragonFlyBSD Kernel Audit
DF-4544 / run.log
← back to finding ↓ download raw
DF-4544 lifted-copy harness: vega20 OD count clamps (vega20_processpptables.c:823-846 vs vega20_hwmgr.c:906-976/1216)
consumer enum range: od_settings idx 0..13, od_feature idx 0..9 (vega20_hwmgr.h:398-417)

=== CONTROL full counts (ODFeatureCount=10 ODSettingCount=14) ===
alloc: od_feature_capabilities=10 B, od_settings_max=56 B, od_settings_min=56 B
OD_RANGE:
SCLK:     800Mhz       1980Mhz
MCLK:       0Mhz       1980Mhz
od_feature_capabilities OOB reads: 0 (max +0 B past)
od_settings_max        OOB reads: 0 (object size 56 B)
od_settings_min        OOB reads: 0
sysfs OD_RANGE prints adjacent-slab marker values: no

=== CRAFTED small ODSettingCount (ODFeatureCount=10 ODSettingCount=1) ===
alloc: od_feature_capabilities=10 B, od_settings_max=4 B, od_settings_min=4 B
OD_RANGE:
SCLK:     800Mhz 2779054081Mhz
MCLK:       0Mhz 2779054088Mhz
od_feature_capabilities OOB reads: 0 (max +0 B past)
od_settings_max        OOB reads: 21 (object size 4 B)
    -> first +0 B, farthest +48 B past the object
od_settings_min        OOB reads: 16
    -> first +8 B, farthest +48 B past the object
sysfs OD_RANGE prints adjacent-slab marker values: YES (kernel heap info leak)

=== CRAFTED small ODFeatureCount (ODFeatureCount=1 ODSettingCount=1) ===
alloc: od_feature_capabilities=1 B, od_settings_max=4 B, od_settings_min=4 B
OD_RANGE:
SCLK:     800Mhz 2779054081Mhz
od_feature_capabilities OOB reads: 9 (max +8 B past)
od_settings_max        OOB reads: 15 (object size 4 B)
    -> first +0 B, farthest +48 B past the object
od_settings_min        OOB reads: 10
    -> first +8 B, farthest +48 B past the object
sysfs OD_RANGE prints adjacent-slab marker values: YES (kernel heap info leak)

=== PATCHED same crafted input (ODFeatureCount=10 ODSettingCount=1 [PATCHED]) ===
alloc: od_feature_capabilities=10 B, od_settings_max=56 B, od_settings_min=56 B
OD_RANGE:
od_feature_capabilities OOB reads: 0 (max +0 B past)
od_settings_max        OOB reads: 0 (object size 56 B)
od_settings_min        OOB reads: 0
sysfs OD_RANGE prints adjacent-slab marker values: no

REPRODUCED: crafted table drove reads past the VBIOS-sized kzalloc objects and the markers reached the OD_RANGE output