CVE-2026-77932

LOWCVSS 9.3 · CRITICAL

Signal is active with 3 mentions in latest observed window

Immediate actions

  • Track advisory updates for patch or workaround availability

Recommended action window: Monitor and triage in normal cycle

NVD description

DB-GPT through 0.8.2 contains an unauthenticated remote code execution vulnerability because the /api/v1/chat/react-agent endpoint relies on a mock get_user_from_headers function that grants every caller the admin role. Unauthenticated attackers can send prompts that make the ReAct agent's unsandboxed code_interpreter and shell_interpreter tools run arbitrary Python or bash as root in the webserver container, including reaching the bundled database with default credentials.

0.0/ 10 priority

Sources & remediation

Weakness type (CWE)
CWE-306

Priority

LOW

Exploitation

NONE

PoC

NONE

Patch

NONE

Momentum

NONE

Threat summary

  • 3 mentions across 1 observed day

What's happening

  • 3 total mentions across 1 day

Deep dive

Activity timeline3 mentions / 1d
01223Mentions · 2026-10-20: 310-20
Referenced assets13 URLs
Full discourse3 posts
  • lee1981@lee1981b

    🔥 CyberForge CVE of the Day #082 🚨 CVE-2026-77932 — DB-GPT: when a mock identity reaches real execution tools An agent that can write code is useful only when the authority to run it is real. Here, the identity check was a mock, while the tool execution was real. The VulnCheck CNA describes DB-GPT through 0.8.2 accepting unauthenticated access to /api/v1/chat/react-agent. Its authentication helper grants an admin role, and the ReAct agent can reach unsandboxed Python and shell tools. Lasso reports root execution inside the webserver container in its research setup. Check who reaches the backend, which identity authorises tools, and what those tools can access. 🎯 THE QUICK HIT What failed: get_user_from_headers returns an admin-role user rather than validating credentials. The affected ReAct route depends on that helper; exposed execution tools then turn an unauthenticated conversation into an operating-system capability. Who should check: owners running DB-GPT through 0.8.2, including the dbgpt-app package, with the relevant backend route and execution tools available. Record the actual deployed commit/image and runtime, not just a UI version or a repository checkout. What was shown: Lasso describes laboratory execution in a containerised setup and, in one run, access to the bundled database using default credentials. That is researcher evidence, not a verified malicious campaign or proof every deployment's database was accessed. Start with: restrict untrusted access to the backend and preserve request, agent and runtime evidence. No fixed release is verified at this cutoff. The latest returned GitHub release and PyPI dbgpt-app version are still 0.8.2, within the CNA's affected range. Follow: request identity and route → conversation/tool-call context → child process → actual container/host identity, mounts and network → relevant database or credential activity. Escalate when: unauthorised tool execution is supported by request and process evidence, or subsequent access is corroborated. Mere route traffic or the word admin in an application record is not enough. Keep this boundary: root inside the reported webserver container does not establish a host escape. A model failing to emit a tool call is also not an authentication or isolation control. 🔑 KEY DETAILS • Product: eosphoros-ai DB-GPT; CNA package identity pkg:pypi/dbgpt-app. • Affected range: through 0.8.2 inclusive, according to the VulnCheck CNA. Do not infer that a hypothetical next version is fixed. • Weakness: CWE-306, Missing Authentication for Critical Function. • Published CVSS v3.1: 9.8 Critical, VulnCheck CNA. • Exact v3.1 vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H • Published CVSS v4.0: 9.3 Critical, VulnCheck CNA. • Exact v4.0 vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N • Access model: network; no prior privileges or user interaction in the published vectors. • NVD: Deferred. The v3.1 metric is labelled Primary but sourced to disclosure@vulncheck.com; v4.0 is Secondary from the same source. Primary does not make it independent NIST scoring. • Documented route: /api/v1/chat/react-agent. The pinned source declares /v1/chat/react-agent; the CNA supplies the public /api prefix. Confirm actual proxy/base-path mapping locally. • Reported execution: Python/bash tools under the application runtime; root in the research webserver container. Inspect actual deployment permissions rather than assuming host root. • Permanent fix: no fixed release verified in the checked advisory/release/package records. • Researcher proposals: real authentication/authorisation, isolated execution paths and narrower network/mount permissions. These are recommendations, not proof an upstream patch shipped. Status at the cutoff: Lasso publishes a lab reproduction narrative. Its structured “Known exploit: No” label does not erase that narrative or establish a field campaign. Its availability display also says None, while both CNA vectors rate vulnerable-system availability High; retain the CNA's exact vectors rather than rewriting them from the page tile. No malicious in-the-wild exploitation was verified in this bounded review. CISA KEV has no exact match in the retrieved 2026.10.16 catalogue, released 16 October and predating the 20 October CNA publication. An older catalogue's non-match is not reassurance. No CISA SSVC assessment was present in the returned CVE record. FIRST returned total 0 and data []. EPSS is unavailable at the lookup, not zero. There is no returned probability, percentile or score date to invent. 🧬 WHAT ACTUALLY WENT WRONG? The intended boundary is caller identity → permission to invoke an agent → permission and isolation for each execution tool. At the CNA-referenced source revision, get_user_from_headers constructs an admin-role user whether the optional user header is supplied or omitted. A claimed user identifier is not a credential check. That means an application record showing admin may describe a manufactured identity rather than an authenticated administrator. The pinned ReAct handler uses that helper. The reviewed Python tool starts a child interpreter, and the shell tool directly creates LocalRuntime. Lasso describes the latter bypassing the separate sandbox opt-in guard. A component named sandbox, or a sandbox setting elsewhere, does not prove these particular execution paths are isolated. The high-level sequence is: 1. An untrusted caller can reach the affected backend route. 2. The mock identity function grants an admin role without credential verification. 3. The ReAct agent can select an execution tool. 4. The tool runs under the application's effective runtime authority rather than a proven separate security boundary. 5. The research setup produced container-root execution; one run also reached its bundled database. The missing authority boundary is outside the model. Prompt filters, model reluctance and chat-interface login do not establish backend authentication or tool isolation. 📦 WHICH DEPLOYMENTS BELONG IN SCOPE? The CNA lists DB-GPT through 0.8.2 and pkg:pypi/dbgpt-app. Confirm actual application code/route wiring: development images, source mounts and rebuilt containers may differ from a tag. Record owner, deployment mode, build/commit, immutable image identity where available, listeners and tools. Map gateways, direct backends and internal reachability. Front-end authentication does not prove origin enforcement. Use approved configuration evidence first; no endpoint was actively tested here. Non-container deployments need their actual process/host authority assessed; the lab setup is not universal. GitHub's latest returned release is v0.8.2, dated 26 August; PyPI also returns 0.8.2. Its separate Jinja2 RCE changelog item does not establish repair of this CVE. A newer repository push is not a security release. The repository advisory API returned []; the global database has unreviewed GHSA-5vjv-vw3m-qpqp with no package/fixed-version entries. Neither certifies safety. Obtain an approved correction and acceptance evidence for authentication and both execution tools before reopening exposure. 🕰️ EXPOSURE WINDOW AND TIMELINE 18th October: CNA datePublic and Lasso database listing. 19th October: VulnCheck advisory page date. 20th October: CNA publication 00:46:11 UTC; NVD 01:17:19 UTC; GHSA 03:32:45 UTC. These are publication events, not first-attack dates. Lasso describes a v0.8.1-related lab source/image arrangement. The CNA separately lists through 0.8.2 and references another source revision. This run did not reproduce each release. Bound the local hunt by affected deployment and backend/tool exposure through verified restriction/correction. Reconstruct past ingress/runtime state; retain missing intervals explicitly. Disclosure is not the start of every exposure. 🧭 SOC INVESTIGATION TRAIL Objective: trace possible unauthorised tool execution and the authority reached. Agree assets, UTC bounds, read access and collection health. These are Forge methods, not CVE signatures. C01 — ESTABLISH THE REAL BACKEND Action/location: match active code/package/image to the affected range; review ingress, direct listeners and authentication through owner-approved deployment/configuration records. Do not send code-execution requests. Signal/correlation: link available tools and untrusted reachability to the same serving instance and historical policy. A front-end login does not prove backend enforcement. Benign causes/limits: stale inventory, an inactive image or a documented custom correction can explain a version hit. A new rebuild alone proves no repair. Escalate unresolved exposure for restriction and owner review; activity evidence is needed for a compromise finding. C02 — PRESERVE THE EXECUTION TIMELINE Action/location: retain available proxy/access, application/agent and existing host/container records before rotation or redeployment. Verify actual schemas/retention; complete tool auditing is not promised. Signal/correlation: preserve UTC bounds, instance/container ID, image/build and available request/conversation/tool/process IDs. Keep native originals, collector/time and protected working copies. Benign causes/limits: streaming, truncation, missing history and clock skew can break the trail. Receipt is not execution. Prompt content/output may be confidential. Escalate gaps that prevent checking a credible lead. Urgent containment may precede ideal collection; record the loss rather than treating the new container as old evidence. C03 — JOIN TOOL CALLS TO PROCESSES Action/location: review the documented route and verified local mapping, then join candidate requests to tool invocation and retained process evidence using actual schemas. Signal/correlation: code_interpreter or shell_interpreter matters when linked to an unauthorised caller, conversation and child process. Distinguish tool selection, execution and returned output; HTTP success alone settles none. Benign causes/limits: legitimate analysis uses these same tools. Names, Python and shell activity are not unique IOCs; compare the owner, job and action. Escalate unexplained execution with supporting records. A model failing to select a tool does not establish protection. C04 — VERIFY IDENTITY INDEPENDENTLY Action/location: correlate application identity to existing gateway/identity-provider, routing and approved-use records where available. Signal/correlation: the mock can produce admin without valid credentials. Establish who authenticated, where, and whether that control covered this backend request. A caller-supplied user header is not authoritative identity. Benign causes/limits: shared accounts, proxies and missing IDs complicate attribution. Verify the trust chain for forwarded source data and account for ingestion delay. Escalate supported unauthorised use. Do not assign a tool action to a named administrator merely because the application recorded that label. C05 — BOUND CONTAINER AND DATABASE EFFECTS Action/location: review approved runtime configuration plus preserved process/file/network and database evidence. Establish actual UID, mounts, capabilities, daemon access and reachable services. Signal/correlation: join executed code to resources it could access, then corroborate subsequent sessions/operations. Lasso's default-credential database leg was one lab run, not every deployment. Benign causes/limits: normal queries, mounted data and maintenance can look similar. Container root is not proof of host root; a risky mount is not a demonstrated escape. Escalate corroborated effects and scope recovery/credential work accordingly. Keep secret values out of shared evidence summaries. C06 — VERIFY RESTRICTION AND CORRECTION Action/location: confirm effective backend restrictions; for an approved repair, verify real credential checks, tool permissions and isolation of BOTH execution paths through owner-approved code/configuration and controlled acceptance work. Signal/correlation: tie proof to every active build, route and change time. A protected proxy can be bypassed by an open origin; a sandbox service does not prove tools use it. Benign causes/limits: image freshness, version labels and changed model behaviour do not establish repair. No fixed release was verified. Escalate alternate backends, missing acceptance, boundary failures or meaningful telemetry gaps. Containment, permanent repair and incident closure remain separate. ANALYST HANDOVER Record asset/owner → build/runtime and routes → UTC window → source/record IDs → request/tool/process correlation → identity confidence/resources reached → restriction/repair proof → gaps and next owner. Classify exposure established, suspicious indicator, validated compromise or telemetry unavailable/insufficient. No matches needs defined assets, interval, source health and query limits. No findings are not proof of a clean system. 🔎 INDICATORS AND OBSERVABLE BEHAVIOUR The route and tool names are capabilities/locations, not unique malicious IOCs. The demonstration marker is a lab artefact, not a campaign signature. No malicious IP/domain/hash set or field campaign was verified in the reviewed sources. Forge lead: correlate untrusted request, actual tool invocation, process and unexplained effects. Check legitimate analysis and model/tool formatting failures. Prompt text alone does not prove execution. If only access logs or tool intent remain, state that limit; newly enabled logging cannot recreate the past. 🧰 TOOLS AND BOUNDED CHECKS — PLAIN LANGUAGE A — INGRESS AND APPLICATION CONFIGURATION Use the existing reverse-proxy, gateway and deployment interfaces with authorised read access. Map the documented route to its actual backend and check direct listeners and historical policy. Confirm where credential validation occurs and whether tools require an independent permission decision. A route behind a pretty login page is not sufficient evidence. Record owner, scope and gaps without sending execution requests. B — EXISTING SIEM, AGENT TRACES AND EDR Scope host/container identities and the UTC interval first. Inspect retained request and conversation/tool records, then correlate to available process and network events. Use real schemas; record caps, ingestion delay and missing fields. Prompt content and tool output may be sensitive. Names alone are not IOCs, and a first page of results is not a complete investigation. These are source-reviewed methods, not a detector tested against a live service. C — CONTAINER RUNTIME AND DATABASE AUDIT INTERFACES Where deployed, use the owner's supported Docker/orchestrator read views and existing database audit facilities. Review selected identity, image, mount, privilege and connectivity fields rather than dumping full environment configuration. Daemon access is powerful even when the intended operation is inspection; use the existing authorised route. Compare historical and current runtime state. Root UID in a container does not independently establish host root, and a database connection is not proof of theft. 🩹 REMEDIATION AND VERIFICATION 1 — Restrict untrusted access to the actual backend and its alternate routes. Lasso recommends removal from untrusted networks or effective authentication. Implement through the owner's change/incident process, considering the service impact. Restriction reduces opportunity; it does not erase earlier access. 2 — Preserve relevant existing evidence before replacement, rotation or redeployment where feasible. Record container/build identity and previous route policy. Do not let a new image silently replace the historical timeline. 3 — Obtain an approved correction. No fixed release was verified; GitHub and PyPI still return affected 0.8.2. Real authentication and authorisation must replace the mock, and both code and shell execution must use the intended isolated runtime. Researcher suggestions are not a released vendor repair. 4 — Reduce authority deliberately: least-privilege runtime, constrained mounts, restricted network access and protected secrets appropriate to the workload. Review the standalone sandbox API if deployed; its authentication is a separate surface. A variable named sandbox or a changed model does not prove the tool boundary. 5 — Verify every active instance and recovery/deployment source. Establish credential validation, caller/tool permissions and effective isolation through approved code/configuration review and controlled acceptance work. This publishing run did not perform those tests. Reopen access only with accountable evidence, not an optimistic version comparison. 6 — Resolve historical compromise from evidence. Corroborated execution may require containment, trusted recovery and scoped credential work based on what the application could access. A model update, restart or access restriction alone does not establish eradication. 🧾 EVIDENCE SEPARATION CNA facts: affected range, route, missing authentication, interpreter capabilities, published vectors and reported container-root consequence. Researcher evidence: lab reproduction and one bundled-database leg. Static source inspection corroborates mock admin assignment, the route dependency and execution paths; it is not a fresh reproduction or proof of a deployed patch. Forge analysis: correlate request, tool and process evidence; assess real runtime authority; restrict bypass paths and demand repair acceptance. These are defensive methods, not observed victim findings. Unknown: a verified fixed release, complete current-main remediation, malicious campaign, victim scope, every deployment's runtime UID/database exposure and historical activity where telemetry is absent. No EPSS probability or CISA SSVC value is supplied by the returned records. 🔥 CYBERFORGE VERDICT DB-GPT's lesson is concrete: identity, permission and execution isolation must be enforced outside the model's discretion. A mock admin decision followed by real interpreter access makes an exposed agent a server-side execution surface. For applicable deployments, restrict the backend, preserve the timeline and investigate the request-to-process trail. Keep container-root research evidence distinct from host compromise, and keep a containment decision distinct from a verified permanent repair. 💜 A capable agent needs a real identity boundary before it gets a real execution tool. 🔗 SOURCES AND FURTHER READING CVE Program / VulnCheck CNA: https://cveawg.mitre.org/api/cve/CVE-2026-77932 CNA advisory: https://www.vulncheck.com/advisories/db-gpt-through-0.8.2-unauthenticated-rce-via-api-v1-chat-react-agent Researcher advisory, reproduction context and recommendations: https://www.lasso.security/vulnerability-database/cve-2026-77932 NVD source-attributed metrics: https://nvd.nist.gov/vuln/detail/CVE-2026-77932 Upstream release and package state: https://github.com/eosphoros-ai/DB-GPT/releases https://pypi.org/project/dbgpt-app/ Pinned authentication source: https://github.com/eosphoros-ai/DB-GPT/blob/83609c471266607490b24e72188311efa23a0d16/packages/dbgpt-serve/src/dbgpt_serve/utils/auth.py GitHub global advisory, unreviewed: https://github.com/advisories/GHSA-5vjv-vw3m-qpqp Dated KEV lookup / FIRST response: https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json https://api.first.org/data/v1/epss?cve=CVE-2026-77932 Container inspection / security / logging context: https://docs.docker.com/reference/cli/docker/container/inspect/ https://docs.docker.com/engine/security/ https://docs.docker.com/engine/logging/ #CyberSecurity #CVE #DBGPT #AgentSecurity #BlueTeam #ThreatHunting #SOC #CyberForge

    30031211
    650 followersView on X
  • AI Cyber Brief@justelite

    DB-GPT up to 0.8.2 (CVE-2026-77932, CVSS 9.8): the agent endpoint's auth is a mock that makes every caller admin, and the agent runs Python and bash unsandboxed as root. One prompt, no login, RCE. No fix yet. An auth stub in front of a shell is a shell. https://www.lasso.security/vulnerability-database/cve-2026-77932

    1001018
    1.8K followersView on X
  • Hazem Omier@hazemomier

    DB-GPT CVE-2026-77932 (9.8): الـ auth على endpoint الـ ReAct agent طلعت mock بترجّع admin لأي حد، والـ code_interpreter بيشغّل Python الموديل من غير sandbox. يعني request واحد من غير login يديك root في الـ container. الحل: auth حقيقي، وغيّر الـ DB creds. https://www.lasso.security/vulnerability-database/cve-2026-77932

    0000022
    509 followersView on X

Explore more