The filesystem is global mutable state
Every program has full access to everything on the filesystem.
This usually isn’t a problem because each program often has its own section of the filesystem that it works with, or is explicitly given files outside of that section to work with.
Sandboxing helps with this, but it treats processes as a whole, even though processes load in individual modules and third-party libraries, which all live in the same sandbox.
However, the fact that every part of a program (including libraries that are pulled in) automatically has full access the filesystem means that access cannot be controlled or traced, which is problematic for two reasons: