This release includes 8 security fixes for security teams reviewing exposed deployments.
Topics
+3 more
Affected surfaces
ReleasePort's take
Moderate signalRelease 7.6.0 hardens authentication against multiple injection vectors and deprecates the abandoned `jenssegers/mongodb` driver, requiring migration to the new `mongodb/laravel-mongodb ^5.7` package.
Why it matters: Hardening mitigates high‑severity injection risks (severity 90) across ~20 packages; removal of `jenssegers/mongodb` (severity 70) mandates migration before it is fully dropped, affecting MongoDB connector services.
Summary
AI summaryBroad release touches SQL & Query Injection, New Features, Admin UI: AI Management, and Connector Fixes.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Hardens authentication against injection, SSRF, LDAP/SOQL/JS injection, zip-slip, JWT/JWKS validation across ~20 packages. Hardens authentication against injection, SSRF, LDAP/SOQL/JS injection, zip-slip, JWT/JWKS validation across ~20 packages. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Breaking | High |
Deprecates and removes the abandoned `jenssegers/mongodb` driver; migrates df-mongodb and df-mongo-logs to `mongodb/laravel-mongodb ^5.7`. Deprecates and removes the abandoned `jenssegers/mongodb` driver; migrates df-mongodb and df-mongo-logs to `mongodb/laravel-mongodb ^5.7`. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Adds AI Connection Service (`df-ai`) providing unified, governed REST access to LLM providers with role‑based control. Adds AI Connection Service (`df-ai`) providing unified, governed REST access to LLM providers with role‑based control. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Adds AI Chat Over Your Data (`df-ai-chat`) enabling agents to reason over live DreamFactory data via existing RBAC. Adds AI Chat Over Your Data (`df-ai-chat`) enabling agents to reason over live DreamFactory data via existing RBAC. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Introduces AI Gateway Analytics Dashboard for cost tracking, latency percentiles, and per‑tool usage logging. Introduces AI Gateway Analytics Dashboard for cost tracking, latency percentiles, and per‑tool usage logging. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Adds Snowflake key‑pair authentication and stored‑function handlers with cross‑database support. Adds Snowflake key‑pair authentication and stored‑function handlers with cross‑database support. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Fixes df-sqlsrv null values in Additional SQL Statements that caused service errors at startup. Fixes df-sqlsrv null values in Additional SQL Statements that caused service errors at startup. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Corrects df-sqldb (PostgreSQL) primary‑key detection when loading columns. Corrects df-sqldb (PostgreSQL) primary‑key detection when loading columns. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Resolves df-databricks connector creation issue and removes dead reserved‑keyword class causing PHP parse errors. Resolves df-databricks connector creation issue and removes dead reserved‑keyword class causing PHP parse errors. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Adds support for default sendmail transport in df-email package. Adds support for default sendmail transport in df-email package. Source: llm_adapter@2026-05-28 Confidence: high |
— |
Full changelog
DreamFactory v7.6.0
DreamFactory v7.6.0 launches governed AI/LLM connectivity as a first-class platform capability — a new AI Connection service type (df-ai), an AI chat experience over your own data (df-ai-chat), and an AI Gateway analytics dashboard backed by per-tool-call MCP audit logging. It also extends the security hardening pass to the full connector, authentication, and integration surface (SQL injection, SSRF, LDAP/SOQL/JS injection, zip-slip, JWKS/JWT validation, secret redaction, and more across ~20 packages), modernizes the MongoDB stack off the abandoned jenssegers/mongodb driver, and forward-ports every package to Laravel 13 compatibility. The admin interface gains AI management screens, a reusable RBAC role-scope control, overview landing pages, portable config-package export, and GitHub-linked server scripts.
New Features
AI Connection Service (df-ai) — COMMERCIAL
A new ai_connection service type providing unified, governed REST access to LLM providers, exposed as DreamFactory endpoints with role-based access control and identity passthrough.
- Providers: Anthropic (Claude), OpenAI (GPT), xAI (Grok), Ollama (local), and any OpenAI-compatible endpoint
- Resources per service:
POST /{service}/completion— single-turn text completionPOST /{service}/chat— multi-turn conversationPOST /{service}/embeddings— vector embeddingsGET /{service}/models— list available modelsGET /{service}/health— provider health checkGET /{service}/usage— usage statistics and token counts
- df-core adds an
AI_CHATservice-type group so AI services slot into the standard service taxonomy
AI Chat Over Your Data (df-ai-chat) — COMMERCIAL
A new package to chat with your DreamFactory-governed data using AI together with MCP tools — combining the AI Connection service and the MCP server so agents reason over live data through existing role-based access controls.
AI Gateway Analytics Dashboard (Admin UI + df-mcp-server)
- New AI Gateway dashboard in the admin interface: cost tracking, per-application attribution, multi-dimensional cost charts, most-expensive-call drill-downs, latency percentiles with deltas and sparklines, budget UI, and a dedicated MCP section
- Backed by new per-tool-call request logging and a Gateway aggregator endpoint in df-mcp-server, with an
mcp:prune-request-logscommand and configurable retention - AI usage analytics surface through
/_internal/ai/usage, reading theai_usage_log
Admin UI: AI Management
- Full configuration screens for AI Connection services — model picker, "test connection" with saved-key fallback, chip-style picker for allowed roles, and inline code-block rendering
- Browser-based AI chat UI at
/ai/chat("Conversations") with a prerequisites picker panel above the chat-service config form - AI navigation split into Connections / Chat / MCP sub-routes
Admin UI: RBAC Role Scope
- New reusable
df-role-scopecomponent and scope route, wired into the RBAC navigation, for scoping role access (includingservice_id=0wildcard handling) — embedded directly in the AI chat-service config form
Admin UI: Overview Landing Pages & Config Package Export
- New overview landing pages with service-category tiles and config-package tooling
- df-system adds portable config-package export, surfaced through the new admin UI config-package tools
GitHub-Linked Server Scripts
- df-script + admin UI: scripts can now be linked to GitHub with a repository explorer, live fetch, and webhook-based cache invalidation
- df-script adds an
_eventmetadata object (pre/post, service, script name) accessible inside scripts, plus a recursion guard for file-script services whose trigger path matches the file service
Snowflake Enhancements (df-snowflake)
- Snowflake key-pair authentication
- Stored-function handlers, including cross-database/cross-schema function calls, with a dedicated
SnowflakeFunctionSchemaand payload-driven parameter filtering
Security
This release extends DreamFactory's security hardening to the full connector, auth, and integration surface.
Authentication & Identity
- df-user: hardened AlternateAuth against filter injection and plaintext/MD5 handling
- df-oauth: strict redirect-host matching, rejection of credentials embedded in URLs, and constant-time comparison (
hash_equals) - df-oidc: never trust
id_tokenclaims without signature validation; JWKS algorithm allowlist (RS256/RS384/RS512 only) - df-saml: JWT requirement for metadata-endpoint access; bumped
onelogin/php-samlto^4.3.1 - df-adldap:
ldap_escapeon user-supplied values and sanitized LDAP group-filter fragments - df-mcp-server: hardened OAuth flow, daemon shared-secret, and Referrer-Policy
SQL & Query Injection
- df-database: validate relationship-filter PK values; quote identifiers in DDL helpers; validate
CREATE TABLEoptions append; harden single-id relationship upsert filter - df-sqldb: parameterized MySQL + PostgreSQL
getTableConstraintsschema lookups and routine/schema metadata lookups - df-sqlsrv: quote INOUT parameter values in T-SQL
SETstatements (dblib/FreeTDS path); parameterize schema-name interpolation; quote identifiers indropColumns - df-oracledb: parameterize OracleSchema lookups; quote
dropColumnsidentifiers - df-snowflake: removed
eval()fromloadParameters; parameterized routine lookups - df-salesforce: validate SOQL identifiers before concatenation
- df-mongodb: reject MongoDB filter operators that execute server-side JavaScript
SSRF, File & Transport Safety
- df-soap: SSRF, TLS-bypass, and symlink-traversal hardening
- df-file: refuse zip entries that escape the extraction target (zip-slip); refuse
asFullPath()results that escape the storage root - df-email: validate URL imports; configurable, hardened allowlist for the Local mailer executable
- df-scheduler: gate crontab install to CLI only, lock it, and escape the path
Secrets & Logging
- df-logger: redact credentials before shipping log payloads to a remote aggregator
- df-cache: unit-separator delimiter in cache keys to prevent key collisions
- df-limits: bucket numeric/UUID/hash path segments in the rate-limit endpoint key (prevents key explosion)
Data Layer
MongoDB Driver Modernization
- df-mongodb (0.22.1) and df-mongo-logs (1.3.1) migrated from the abandoned
jenssegers/mongodbto the maintainedmongodb/laravel-mongodb ^5.7. Themongodbconnection driver name andLOGSDB_*variables are unchanged — existing Mongo services and logging keep working without configuration changes. - df-mongodb: preserved nested field paths (no longer rewrites
_id.Id→_id), maintaining correct dot notation
Connector Fixes
- df-sqlsrv: fixed null values in Additional SQL Statements causing service errors at startup
- df-sqldb (pgsql): correctly detect primary keys when loading columns
- df-databricks: fixed connector creation; removed a dead reserved-keyword class (
Function) that could trigger a PHP parse error - df-dremio: fixed connector installation issues
- df-azure-ad: fixed get/set inheritance for role-per-app fields
- df-email: allow the default sendmail transport
- df-logger: correct Monolog v3 log-level integer conversion
Admin UI Fixes
- Event Scripts: fixed the "Add path to file" radial not saving state and not clearing service details in the event-script service config screen
- API Docs: pinned swagger-ui to 4.15.5 to restore the API Docs UI
- Overview tiles navigate on first click and remain stable across dashboard pages; category pages render before data loads; clicks no longer blocked by the loading overlay
- AI UI: corrected camelCase form-key handling, hid
ai_service_id/ai_role_idwhen type isai_chat, stopped sending the maskedapi_key, improved light-mode legibility, and aligned font sizing - Performance: reduced navigation churn and cached AI usage lookup datasets
Platform & Compatibility
Laravel 13 Forward-Compatibility
- Every package was updated for Laravel 13 compatibility (e.g., replacing the removed
Connection::withTablePrefix()with the L13Grammar($this)constructor in df-sqlsrv, anddispatchNow()→Bus::dispatchSync()in df-script) - df-core adds PHP 8.5 readiness fixes (autoload preloading and incomplete-class guards around cached schema/CORS reads)
Upgrade Notes
- Security fixes are cumulative — upgrading is recommended for all deployments. This release hardens SQL injection, SSRF, LDAP/SOQL injection, server-side-JS injection, zip-slip, JWT/JWKS validation, secret logging, and crontab handling across ~20 packages.
- Platform baseline is unchanged from 7.5.0 (PHP 8.3 / Laravel 11). No host-level upgrade is required — this is an in-place upgrade. All packages are now Laravel 13-ready, but 7.6.0 ships on the validated L11 stack.
- MongoDB driver swap: df-mongodb and df-mongo-logs now use
mongodb/laravel-mongodbinstead of the deprecatedjenssegers/mongodb. Themongodbconnection driver name andLOGSDB_*variables are unchanged; ensure themongodbPHP extension is present (already included in the official Docker images). - MongoDB field paths: nested
_idfield paths are now preserved in dot notation. If you built downstream logic around the previous_id.Id→_idrewrite, re-verify those queries. - OIDC/SAML hardening: OIDC now enforces
id_tokensignature validation and an RS256/384/512 JWKS allowlist; SAML requires a JWT for metadata-endpoint access and bumpsonelogin/php-saml. Verify identity-provider configurations after upgrading. - Standard upgrade process applies for all other changes. Existing services, roles, and API keys are preserved.
Breaking Changes
- df-mongodb now uses mongodb/laravel-mongodb driver (requires PHP mongodb extension) but retains connection name and LOGSDB_* variables
Security Fixes
- Hardened AlternateAuth against filter injection and plaintext/MD5 handling in df-user
- df-oauth strict redirect‑host matching and constant‑time comparison (hash_equals)
- df-oidc enforces id_token signature validation with RS256/384/512 JWKS allowlist
- df-saml requires JWT for metadata endpoint access; bumped onelogin/php-saml to ^4.3.1
- df-adldap sanitizes LDAP group‑filter fragments using ldap_escape
- SQL injection mitigations across df-database, df-sqldb, df-sqlsrv, df-oracledb, df-snowflake, df-salesforce, df-mongodb (rejects JS execution operators)
- SSRF hardening in df-soap; zip‑slip prevention and full‑path validation in df-file
- Secret redaction in df-logger before remote aggregation
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Beta — feedback welcome: [email protected]