```python
def apply_overrides(base: dict, overrides: list) -> dict:
    if not isinstance(overrides, list):
        raise ValueError("Overrides must be a list")
    
    merged = dict(base)
    for override in overrides:
        if not isinstance(override, str):
            raise ValueError("Each override must be a string")
        
        name, sep, value = override.partition('=')
        if not sep or not name or name not in base:
            raise ValueError(f"Invalid override: {override}")
        
        merged[name] = value
    
    return merged
```