-
security: add module whitelist and input validation (#1887)
发布于
2026-02-02 02:14:54 +00:00 - security: add module whitelist and harden dynamic imports
- Add module_whitelist.py with allowed module paths and class names
- Replace direct importlib calls with validated get_safe_module_class()
- Block modification of sensitive settings (module_path, class_name)
- Disable open_file_location endpoints (server-only feature)
- security: restrict module paths to relative imports only
- Remove absolute paths from module whitelist (only "." prefix allowed)
- Add validation requiring module_path to start with "."
- Set module_path and class_name settings to editable=false, visible=false
- Convert existing absolute paths in defaults to relative paths
- security: validate raw config for dangerous keys
- Parse TOML before writing to config.toml
- Block any config containing module_path, class_name, module, class keys
- Prevents bypassing settings validation via raw config endpoint
- security: fix additional vulnerabilities found in audit
- settings_routes.py: Replace unprotected import_module with get_safe_module_class
- api_routes.py: Add SSRF validation for user-submitted URLs in add_resource
- templates.py: Sanitize context values to prevent format string attacks
- fix: use logger.exception() in exception handlers
Address pre-commit check failures:
- Use logger.exception() instead of logger.error() in module_whitelist.py
- Apply ruff formatting fix in search_engine_base.py
- fix: apply ruff formatting
下载附件