Repository navigation
v3.8.2
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 ./docsIf 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,WeaviateRetrieverandPgVectorRetriever, inHybridRetriever, and inGuardrailsPipelinewith custom pipelines. - How
GuardrailsPipelinechecks streamed answers, and what it returns when it blocks an answer. - Signature verification of plugins configured in
.ragrc.json, and thehub installsecurity 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
DevServerwhen 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:
- Access control in the vector-store retrievers and
HybridRetriever: GHSA-234f-v76m-p9wc GuardrailsPipelinestreamed and blocked answers: GHSA-whr9-r3mv-2565- Plugin signature verification and install checks: GHSA-m9gh-5x7v-rqj2
- Denial of service in text checks, plugin archive extraction and the MCP server, and the
DevServerHost check: GHSA-4jh4-qv86-j2gw AuditLoggerintegrity and tenant filters: GHSA-89fq-598q-39wc
After upgrading
- Do I need to re-ingest?
QdrantRetriever,PineconeRetriever,WeaviateRetrieverandPgVectorRetrievernow store a document's top-levelaclandrequiredRole. 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
FileVectorStoreindexes whose documents setaclorrequiredRoleat the top level (fixed in 3.8.1).
Changed
Some of these change behaviour:
HybridRetrieverkeeps the restrictions of every copy of a document, which can hide documents that were visible before. The rolerag:no-accessis reserved.GuardrailsPipelinereturns 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.jsonare verified before they load, and unsigned plugins warn. hub installscans more and passes less;hub certifyscans the entry file the same way.@devilsdev/rag-mcp-serverlimits tool inputs and check time; each limit can be raised with a CLI flag or environment variable (see the package README).DevServerchecks theHostheader of loopback requests whatever it is bound to.AuditLoggerchains 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