DEV Community

Devil's Dev
Devil's Dev

Posted on Originally published at devilsdev.github.io

RAG Pipeline Utils v3.8.1

A security release. Upgrade now if you use RetrievalGuard access control, plugin signature verification, the development server (DevServer) or @devilsdev/rag-mcp-server, and re-ingest FileVectorStore indexes whose documents set acl or requiredRole at the top level. One change in access control can hide documents that were visible before.

npm install @devilsdev/rag-pipeline-utils@^3.8.1
# and, if you use the MCP server:
npx @devilsdev/rag-mcp-server@3.8.1 ./docs
Enter fullscreen mode Exit fullscreen mode

Security

Four advisories are fixed in this release. Each one lists the affected
versions and workarounds for anyone who can't upgrade yet.

  • Access control (RetrievalGuard with enforceACL, and the built-in MemoryRetriever, FileVectorStore and BM25Search): a document restricted to a role could be passed to users without that role, depending on where the restriction was set on the document and how the user's permissions were passed in. GHSA-8393-cmg7-9rv3
  • Plugin signatures (PluginSignatureVerifier with requireContentDigest: true): a crafted plugin manifest could pass verification for code its signer never approved. GHSA-w693-22gp-m69r
  • The development server (DevServer): in some setups it could be reached from the network, or by other web pages open in your browser, which could then run queries on your LLM provider's credits. GHSA-6h47-g8cw-366q
  • The MCP server (@devilsdev/rag-mcp-server): a crafted HTML file in an indexed folder could stall indexing for minutes. GHSA-j2vr-gm7f-3r37

After upgrading

  • Re-ingest FileVectorStore indexes whose documents set acl or requiredRole at the top level (not in metadata). Index files written by earlier versions don't contain that field, so upgrading alone doesn't restrict those documents. Documents with the restriction in metadata, and the in-memory stores (MemoryRetriever, BM25Search), need no action beyond upgrading.

Changed

  • RetrievalGuard now requires every restriction a document sets. A document can set requiredRole or acl at its top level, in metadata and on doc; access now requires meeting each one that is set (any one role of a list is enough for that list). This can hide documents that were visible before.

The full list is in the CHANGELOG.


Originally published on the rag-pipeline-utils blog.

Top comments (0)