AviatorEvaluatorInstance构造方法自动调用loadModule方法: ```java // AviatorEvaluatorInstance.java 第 894-901 行 private void loadModule() { try { addModule(IoModule.class); // IoModule 被加载到 moduleCache } catch (Exception e) { System.err.println("Fail to load internal modules."); System.exit(1); } } ``` 调用enableSandboxMode时,通过 `disableFeature(Feature.Module)` 禁用了 `require`/`load` 函数,阻止脚本动态加载新模块。但该方法**未调用** `removeModule("io")` 将已加载的 IoModule 从模块缓存中移除: ```java // AviatorEvaluatorInstance.java 第 470-480 行 public void enableSandboxMode() { disableFeature(Feature.Module); // 移除了 require/load 函数 disableFeature(Feature.NewInstance); disableFeature(Feature.InternalVars); disableFeature(Feature.StaticMethods); setFunctionMissing(null); setOption(Options.MAX_LOOP_COUNT, 65535); setOption(Options.ALLOWED_CLASS_SET, Collections.emptySet()); setOption(Options.ASSIGNABLE_ALLOWED_CLASS_SET, Collections.emptySet()); setOption(Options.EVAL_TIMEOUT_MS, 1000L); // ← 缺少 removeModule("io") } ```
Activity
killme2008 commentedon Jul 20, 2026
感谢反馈。
在 #705 修复
5.4.4 已经发布 https://github.com/killme2008/aviatorscript/releases/tag/aviator-5.4.4