# DF-5316 — USB_SET_CONFIG / USB_SET_ALTINTERFACE missing privilege check

`ugen_check_request()` gates raw UR_SET_CONFIG/UR_SET_INTERFACE control
requests behind SYSCAP_NODRIVER, but the `USB_SET_CONFIG` /
`USB_SET_ALTINTERFACE` ioctls — which do the same thing (and more:
driver detach + re-attach + re-enumeration) — have no privilege check.
An unprivileged user with libusb-style access to a ugen control node
can unconfigure/reconfigure the device.

## Build / Run (guest, as maxx)
    ./build.sh
    ./df5316
Success (unpatched): [1] USB_REQUEST(SET_CONFIG)=EPERM while
[2] USB_SET_CONFIG(255)=0 and curr_config_index flips to 255.
On the fix-validated kernel: [2] and [3] both EPERM, device unchanged.

Fix: `fix.diff` (caps_priv_check_self(SYSCAP_NODRIVER) in
ugen_set_config + ugen_set_interface), validated on the patched kernel.
