Skip to content

v3.8.2

Choose a tag to compare

@alikahwaji alikahwaji released this 08 Nov 19:39
· 13 commits to main since this release
6b7e6ee

A patch release with security fixes. Upgrade now if you use the vector-store retrievers (QdrantRetriever, PineconeRetriever, WeaviateRetriever, PgVectorRetriever), HybridRetriever, GuardrailsPipeline, plugins from .ragrc.json or hub install, AuditLogger, DevServer or @devilsdev/rag-mcp-server. Some changes in access control can hide documents that were visible before, and documents stored by earlier versions may need re-ingesting; see below.

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

If you install @devilsdev/rag-core, rag-guardrails, rag-connectors or rag-eval directly, upgrade them to 3.8.2 as well.

Security

Fixed in this release:

  • Access control in QdrantRetriever, PineconeRetriever, WeaviateRetriever and PgVectorRetriever, in HybridRetriever, and in GuardrailsPipeline with custom pipelines.
  • How GuardrailsPipeline checks streamed answers, and what it returns when it blocks an answer.
  • Signature verification of plugins configured in .ragrc.json, and the hub install security scan and contract check.
  • Denial of service in InjectionDetector, the default PII patterns, answer scoring, EntityExtractor, plugin archive extraction and @devilsdev/rag-mcp-server's tool inputs.
  • Request validation in DevServer when it is bound to all interfaces.
  • Integrity verification and tenant filters in AuditLogger.

Five advisories, each listing the affected versions and workarounds for anyone who can't upgrade yet:

After upgrading

  • Do I need to re-ingest? QdrantRetriever, PineconeRetriever, WeaviateRetriever and PgVectorRetriever now store a document's top-level acl and requiredRole. If your ingestion sets them at a document's top level, documents stored by earlier versions were saved without them; re-ingest those. Do I need to re-ingest? explains how to check a store.
  • If you're upgrading from 3.8.0 or earlier, also re-ingest FileVectorStore indexes whose documents set acl or requiredRole at the top level (fixed in 3.8.1).

Changed

Some of these change behaviour:

  • HybridRetriever keeps the restrictions of every copy of a document, which can hide documents that were visible before. The role rag:no-access is reserved.
  • GuardrailsPipeline returns blocked results without text, buffers streamed answers when a post-generation guard is set, and withholds results the retrieval guard couldn't check.
  • Plugins configured in .ragrc.json are verified before they load, and unsigned plugins warn.
  • hub install scans more and passes less; hub certify scans the entry file the same way.
  • @devilsdev/rag-mcp-server limits tool inputs and check time; each limit can be raised with a CLI flag or environment variable (see the package README).
  • DevServer checks the Host header of loopback requests whatever it is bound to.
  • AuditLogger chains and verifies its records, stores a signing key when none is configured, and validates tenant filters.

The scoped packages, @devilsdev/rag-mcp-server and create-rag-pipeline are released at 3.8.2 too. Full details: CHANGELOG