
Cloud Vulnerability DB
コミュニティ主導の脆弱性データベース
CVE-2026-48116 is a remote code execution (RCE) vulnerability in AnythingLLM caused by argument injection in the filesystem-search-files agent skill. The skill passes an LLM-controlled pattern parameter directly to ripgrep as a positional argument without a -- end-of-options separator, allowing a crafted pattern like --pre=/bin/sh to turn ripgrep into a script executor. All versions prior to 1.13.0 (confirmed present through v1.12.1) are affected, with the filesystem plugin enabled by default in the official Docker image. The vulnerability was published on May 28, 2026, and carries a CVSS v3.1 base score of 8.8 (High) per NVD, or 7.5 (High) per the GitHub Security Advisory (GitHub Advisory, Red Hat CVE).
The root cause is improper neutralization of argument delimiters (CWE-88) and command injection (CWE-77) in server/utils/agents/aibitat/plugins/filesystem/search-files.js. The searchWithRipgrep function appends the LLM-supplied pattern and searchPath as positional arguments to ripgrep without a -- separator (line 341: args.push(pattern, searchPath)), so any pattern beginning with - is parsed by ripgrep as a command-line option. Specifically, --pre=/bin/sh activates ripgrep's preprocessor feature, causing it to execute /bin/sh <file> for every file it walks. An attacker combines this with the filesystem-write-text-file skill to first write a malicious shell script into the allowed directory (${STORAGE_DIR}/anythingllm-fs), then triggers its execution via the injected --pre flag. The same missing -- separator also affects searchFilesWithRipgrepGlob in the same file (GitHub Advisory, Patch Commit).
Successful exploitation grants an attacker arbitrary command execution inside the AnythingLLM server container as the server process user. The server process has read/write access to storage/anythingllm.db, which contains API keys and user password hashes, as well as the full storage directory and any mounted volumes. The attacker can also reach other services on the container network, enabling lateral movement within the deployment environment. This results in full compromise of confidentiality, integrity, and availability of the affected container (GitHub Advisory).
A proof-of-concept exploit with step-by-step instructions is publicly available in the GitHub Security Advisory, confirmed to work against v1.12.1 and current master at the time of disclosure. Exploitation requires only low privileges (any authenticated user with agent access in a workspace with agent mode enabled on a Docker deployment) and no user interaction. The EPSS score is approximately 0.047%, and there is no evidence of active in-the-wild exploitation or CISA KEV catalog listing as of the time of reporting. The advisory credits AlexMelanFromRingo as the reporter (GitHub Advisory).
filesystem-write-text-file skill: @agent Use filesystem-write-text-file with path="exploit.sh" and contents="#!/bin/sh\n<payload commands>". This writes the shell script into ${STORAGE_DIR}/anythingllm-fs/exploit.sh.@agent Call filesystem-search-files with pattern="--pre=/bin/sh", mode="content", filePattern="*.sh". This causes ripgrep to be invoked with --pre=/bin/sh parsed as the preprocessor option rather than a search pattern./app/server) recursively, executing /bin/sh exploit.sh for each .sh file it encounters, running the attacker's payload as the server process user.storage/anythingllm.db (containing API keys and password hashes), pivot to other container network services, or establish persistence (GitHub Advisory).exploit.sh) in ${STORAGE_DIR}/anythingllm-fs/; new or modified files in /app/server or mounted volumes created by the server process; unexpected files in /tmp (e.g., marker files like /tmp/anythingllm-rce-pwned).filesystem-write-text-file calls followed immediately by filesystem-search-files calls with a pattern value starting with -- or -; ripgrep invocations with --pre= arguments in process logs./bin/sh, curl, wget, nc) visible via container process monitoring; unexpected process execution chains originating from ripgrep (GitHub Advisory).Upgrade AnythingLLM to version 1.13.0 or later, which inserts a -- separator before positional arguments in both searchWithRipgrep and searchFilesWithRipgrepGlob, and adds a defense-in-depth check that rejects any pattern beginning with -. If immediate patching is not possible, disable the filesystem plugin by unsetting or overriding the ANYTHING_LLM_RUNTIME=docker environment variable, or restrict agent access to only trusted users. The fix commit is available at 94ed62d320df1a06c229e4bc3ee09c2cb5111b33 (Patch Commit, GitHub Advisory).
The vulnerability was disclosed by Mintplex-Labs maintainer timothycarambat via a GitHub Security Advisory on May 21, 2026, with the CVE published on May 28, 2026. The advisory was credited to researcher AlexMelanFromRingo. Red Hat also tracked the vulnerability in their CVE database. No significant broader media coverage or notable social media discussion has been identified beyond standard CVE aggregator coverage (GitHub Advisory, Red Hat CVE).
ソース: このレポートは AI を使用して生成されました
無料の脆弱性評価
9つのセキュリティドメインにわたるクラウドセキュリティプラクティスを評価して、リスクレベルをベンチマークし、防御のギャップを特定します。
パーソナライズされたデモを見る
"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"