From f7e241b789ff911668a53393d742af66eeb3fd37 Mon Sep 17 00:00:00 2001 From: Hans Ott Date: Thu, 9 Jul 2026 12:20:11 +0200 Subject: [PATCH] Emit better warning when binaries/ directory is missing --- .../sql_injection/RustSQLInterface.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection/RustSQLInterface.java b/agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection/RustSQLInterface.java index aca48842..1e14a381 100644 --- a/agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection/RustSQLInterface.java +++ b/agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection/RustSQLInterface.java @@ -41,8 +41,18 @@ public static boolean detectSqlInjection(String query, String userInput, Dialect } public static SqlLib loadLibrary() { String path = getPathForBinary(); - if (path == null || !Files.exists(Path.of(path))) { - logger.error("Could not load zen binaries used for SQL Injection algorithm. Path: %s", path); + if (path == null) { + logger.error("Could not load zen binaries: AIK_agent_dir is not set. SQL injection detection is disabled."); + return null; + } + Path binariesDir = Path.of(path).getParent(); + if (binariesDir == null || !Files.isDirectory(binariesDir)) { + logger.error("Could not load zen binaries: the 'binaries' directory is missing (%s). Copy it next to " + + "agent.jar - check if a build step (e.g. Docker COPY) left it out. SQL injection detection is disabled.", binariesDir); + return null; + } + if (!Files.exists(Path.of(path))) { + logger.error("Could not load zen binaries: file not found: %s. SQL injection detection is disabled.", path); return null; } Map libraryOptions = new HashMap<>();