发布

  • security: add module whitelist and input validation (#1887)

    frostbyte_neo 发布于 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
    下载附件