Disabled styling was added to the custom file input recently, but that didn't cover the button part of the component, so the button looks enabled when the input is disabled.
I think this could be achieved by adding something like:
&::after {
opacity: $btn-disabled-opacity;
@include box-shadow(none);
}
to the
&:disabled {
~ .custom-control-label {
section of the _custom_forms.scss