Skip to content
eastbaycyber

CVE-2026-101065: Obot Docker Admin Access

CVE explainers 9 min read
SR
Security Research Desk Expert reviewed
Threat intelligence · Human-verified · Updated 2026-09-27
Threat Intelligence
1GitHub refs
▲ Escalation ViewOne CVE, briefed at three altitudes — skim the Brief, weigh the Impact, or work the Runbook. The way a SOC actually reads it.
CISOBrief · 30-second brief

TL;DR - Obot Docker quickstarts through commit d7e6970 can expose an unauthenticated Owner/Admin interface. - Internet-reachable deployments may allow attacker-controlled MCP server registration and Docker control-surface access. - Enable authentication immediately, restrict port 8080, and investigate exposed hosts.

Vulnerability at a Glance

CVE-2026-101065 affects the Docker quickstart deployment documented for Obot, an open-source AI agent and Model Context Protocol (MCP) platform. The issue stems from configuration and documentation rather than a conventional flaw in a numbered software release. The documented setup disables authentication while binding the service to all interfaces.

Field Details
CVE ID CVE-2026-101065
CVSS score 9.8 Critical
CVSS vector The available NVD record supplied the score but not the vector string. Confirm the vector directly in the NVD JSON before compliance reporting.
Attack vector Network reachability is required. The supplied score and description are consistent with network exploitation, but the exact vector should be verified.
Authentication required None when the vulnerable quickstart configuration is used
Affected scope Obot deployments created with quickstart instructions through commit d7e6970
Patch status Yes, through corrected quickstart documentation and configuration
Conventional fixed version Not provided. This is not expressed as a normal semantic software version range.
CISA KEV Not listed as of 2026-09-27

Exposure determines the practical risk. An Obot instance bound to 0.0.0.0:8080 and reachable from an untrusted network should be treated as infrastructure at risk of compromise, even though the CVE is not currently listed in CISA’s Known Exploited Vulnerabilities catalog.

Analyst’s Take: The first control to verify is authentication, but network exposure and Docker socket access determine how far an incident could extend. The available NVD record supports the 9.8 score without supplying its vector, so formal reporting should use the authoritative NVD JSON rather than an inferred metric string.

What Is This Vulnerability?

The root cause is the combination of authentication being disabled in the documented Docker quickstart and unauthenticated requests being mapped to a synthetic nobody user. In the affected behavior, that identity has both the Owner and Admin roles. A remote party who can reach the service therefore does not merely obtain anonymous read access; the party can receive administrative access to the Obot API and web interface.

The quickstart also binds the service to 0.0.0.0:8080, making it listen on all container interfaces and commonly exposing it through the host’s published port. The configuration mounts /var/run/docker.sock into the container as well. Administrative access can include registering and launching attacker-controlled MCP servers, so the Docker socket increases the potential impact beyond the Obot application itself. Exact host impact depends on Docker permissions, runtime behavior, network controls, and the capabilities granted to the launched workload.

The vulnerable path is:

  1. An attacker reaches the published Obot service.
  2. Obot authentication is disabled.
  3. The request is mapped to the privileged synthetic nobody identity.
  4. The attacker uses Owner/Admin capabilities.
  5. The attacker registers or launches an MCP server.
  6. The MCP runtime may interact with the mounted Docker control socket.

This is best understood as an unsafe deployment default with a privilege-mapping consequence. The available research does not identify a separate memory-safety, injection, or authorization-code defect.

AnalystImpact · assess the risk

Who Is Affected?

The NVD-defined affected scope is Obot in all versions up to and including commit d7e6970, specifically when deployed using the vulnerable Docker quickstart instructions. No conventional semantic version range such as <0.x.y> is provided. Administrators should not assume that upgrading an arbitrary container tag resolves the issue unless the deployment uses corrected instructions or explicitly enables authentication.

Potentially affected deployments include development, evaluation, and single-tenant installations that copied the prior README command or equivalent Docker configuration. An instance may be exposed even when the operator did not intentionally publish it to the internet. A cloud security group, load balancer, VPN route, container host firewall, or reverse proxy can make port 8080 reachable from a broader network.

Deployments are less likely to be affected by this specific exposure when all of the following are true:

  • Authentication was explicitly enabled.
  • Port 8080 is restricted to trusted administrative networks.
  • The service is not directly exposed to the public internet.
  • The Docker socket is not mounted, or access is otherwise isolated.
  • The deployment does not use the vulnerable quickstart configuration.

Verify these conditions rather than inferring them from the presence of a newer image. The supplied records identify a corrected quickstart configuration, but they do not provide a conventional fixed product version.

Organizations managing many cloud workloads can also use cloud security posture management processes to identify publicly exposed container services and permissive security groups. See our guide to the best cloud security posture management tools in 2026 for a broader discussion of that workflow.

CVSS Score Breakdown

The published NVD base score is 9.8, rated Critical. The returned research record did not include the CVSS vector string, so the individual official metric values should not be represented as confirmed until the NVD JSON or another authoritative record is checked.

The score is consistent with a remotely reachable, unauthenticated issue with high confidentiality, integrity, and availability impact. In practical terms, an attacker does not need an account in the vulnerable configuration, can potentially perform administrative actions, and may be able to launch attacker-controlled MCP workloads. The Docker socket mount can further increase impact by exposing Docker’s host control surface.

For formal vulnerability management, retrieve and record the authoritative vector before calculating environmental or temporal scores. Do not substitute an inferred vector for the published vector in audit evidence. Regardless of the exact metric string, the operational priority remains high because the attack path is unauthenticated and administrative access can be obtained through a network-reachable service.

Exploitation Status

CVE-2026-101065 is not listed in CISA KEV as of 2026-09-27. There is no KEV date-added value, due date, required action, or ransomware campaign flag associated with this CVE in the supplied research. This means CISA has not listed it as a known exploited vulnerability through that catalog. It does not prove that exploitation is impossible or that individual exposed instances have not been targeted.

A public GitHub Security Advisory describes the vulnerability and its remediation. The available material does not establish a public exploit repository or a documented proof-of-concept exploit. It also does not confirm exploitation in the wild or identify a ransomware campaign. The defensible status is: public advisory exists, a separate public PoC is not confirmed in the supplied sources, and active exploitation is not confirmed.

Do not downgrade the issue solely because exploitation has not been confirmed. Where the quickstart service is publicly reachable, the required action is straightforward and the exposed administrative interface may be discoverable through ordinary network scanning. Treat any exposed instance as high priority and investigate it for unauthorized changes.

ResponderRunbook · act now

How to Detect It

Start with asset discovery. Identify containers running Obot, published port 8080, Docker Compose files, systemd-managed Docker commands, and cloud security group rules that permit access to the service. Check whether the container includes /var/run/docker.sock and whether OBOT_SERVER_ENABLE_AUTHENTICATION is absent or set to a false value.

Review application logs for unauthenticated requests that perform administrative operations. The supplied records do not specify the exact Obot log schema or endpoint names, so defenders should avoid relying on one undocumented URI. Correlate source IP addresses, HTTP status codes, user identity fields, and administrative actions in the Obot logs with Docker events and reverse-proxy records.

Technical Notes

A generic reverse-proxy or web server query can identify requests associated with an unauthenticated administrative exposure when the application logs the synthetic identity:

user="nobody" AND (role="Owner" OR role="Admin")

If logs are JSON-formatted, an example SIEM query pattern is:

event.module:obot AND
(user.name:"nobody" OR user.id:"nobody") AND
(http.request.method:(POST OR PUT OR PATCH OR DELETE) OR
 url.path:(*admin* OR *mcp* OR *server*))

Adapt the exact field names to the deployed logging format. A useful network-side detection is any inbound connection from an untrusted source to TCP port 8080 on the Obot host, followed by HTTP requests that receive successful responses. For example, a firewall or flow query can begin with:

destination.port = 8080
AND source.ip NOT IN trusted_admin_ranges

On the Docker host, review container creation and execution activity around the time of suspicious Obot requests:

docker events --since 24h \
  --filter type=container \
  --filter event=create \
  --filter event=start

Also inspect current and recently stopped containers for unexpected images, commands, mounts, or network attachments. Docker event history may be incomplete after daemon restarts, so correlate it with daemon logs, container metadata, image-pull records, and reverse-proxy access logs.

Mitigation and Patching

The documented fix is configuration and documentation based. Operators who used the affected quickstart should enable authentication before exposing the service to any untrusted network:

OBOT_SERVER_ENABLE_AUTHENTICATION=true

For a Docker deployment, pass the setting explicitly and publish the service only where it is needed:

docker run \
  -e OBOT_SERVER_ENABLE_AUTHENTICATION=true \
  -p 127.0.0.1:8080:8080 \
  obot-platform/obot

The image name and other required deployment options may differ in a specific environment. The controls that matter here are enabling authentication and avoiding a broad host binding. If a reverse proxy is used, place it behind an identity-aware access control layer and restrict the backend so it cannot be reached directly.

A private VPN can help limit administrative access to the service, but it is not a replacement for application authentication or least-privilege configuration. Organizations evaluating a VPN should treat services such as NordVPN as one possible network-access control component, not as a fix for an exposed Docker socket or disabled Obot authentication.

There is no conventional fixed software version number in the supplied advisory. The affected scope ends at commit d7e6970, while the corrected quickstart enables authentication. Because the available records do not provide the exact remediation commit or a semantic release number, administrators should verify the current Obot repository and documentation before selecting an image tag. Do not claim compliance based only on pulling a newer image if authentication remains disabled.

Technical Notes

A Docker Compose-style workaround is:

services:
  obot:
    environment:
      OBOT_SERVER_ENABLE_AUTHENTICATION: "true"
    ports:
      - "127.0.0.1:8080:8080"

If the service must be remotely accessible, replace the loopback-only publication with a private management address or controlled reverse proxy. Apply firewall or security group rules that permit only trusted administrative networks. Do not expose the administrative interface directly to the public internet.

Inspect whether the Docker socket is mounted:

docker inspect <obot-container> \
  --format '{{json .Mounts}}' | jq

If it is not required for the deployment, remove the mount from the container definition and recreate the container. A temporary host-level check is:

docker inspect <obot-container> \
  --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}'

Look specifically for:

/var/run/docker.sock -> /var/run/docker.sock

Removing the socket may affect MCP runtime functionality, so test the application in a controlled environment. The safer long-term deployment model should isolate workloads and avoid granting an application direct access to the host Docker daemon where possible. The project documentation recommends Kubernetes for production or multi-tenant use, while the Docker socket-based configuration is intended for development, evaluation, or trusted single-tenant environments.

If the instance was reachable while unauthenticated, rotate Obot credentials, API tokens, MCP integration secrets, and any credentials accessible to launched workloads. Review registered MCP servers, recent configuration changes, Docker images, running containers, outbound connections, and host-level authentication logs. Preserve relevant logs before rebuilding or deleting containers.

References

  1. GitHub Security Advisory: GHSA-jj4w-pfgv-4mrm
  2. VulnCheck advisory for Obot quickstart Docker deployment
  3. Obot GitHub repository
  4. Obot documentation
  5. Obot FAQ, including authentication configuration
  6. Obot security policy
  7. NVD CVE record search

This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.

Last verified: 2026-09-27

Disclaimer: This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.