The vulnerability stems from how the license parameter was handled in LibraryLicense.php prior to patching. The pre-patch code used $request->getByType('license', 'Text') which didn't properly restrict path traversal characters. This allowed attackers to craft paths like '../../etc/passwd' which would be concatenated with '.txt' and read via file_get_contents. The patch introduced two critical changes: 1) Used \App\Purifier::PATH type for input validation, and 2) Added \App\Fields\File::isAllowedFileDirectory check - confirming these were the missing security controls. The process function's handling of the license parameter was the direct entry point for this vulnerability.