CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-61711

CVE-2026-61711: Sandbox Escape via Protobuf SecurityMode Enum Validation Bypass in Moby BuildKit

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 20, 2026·4 min read·4 visits

Executive Summary (TL;DR)

Moby BuildKit before v0.31.1 fails to validate protobuf SecurityMode enums, allowing invalid values to disable Seccomp and AppArmor security profiles on execution containers.

A detailed technical analysis of CVE-2026-61711, an input validation flaw in Moby BuildKit prior to version 0.31.1. The flaw allows unauthorized or custom frontends to construct build execution environments where Seccomp and AppArmor configurations are completely disabled by supplying an invalid protobuf enum index, resulting in an elevated kernel-level attack surface inside the build sandbox.

Vulnerability Overview

Moby BuildKit is a highly efficient toolkit designed to convert source code into build artifacts, acting as the backend framework for modern container development suites.

Prior to version 0.31.1, BuildKit contained a logical input validation flaw when deserializing structured gRPC message payloads that carry client-supplied execution directives.

Specifically, the integer value representing the SecurityMode parameter was parsed and accepted from the payload without validation against the known, approved set of Protocol Buffer (protobuf) enum constants.

This behavior exposes a local and network-adjacent attack surface where an execution instance can bypass default Linux security profiles without triggering the security authorization flags.

Root Cause Analysis

The root cause of the vulnerability resides in how BuildKit processes protobuf-defined integer enums during the construction of Open Container Initiative (OCI) runtime specifications.

Inside the module executor/oci/spec_linux.go, the function generateSecurityOpts employs a standard Go switch statement to evaluate the security requirements of a build instruction based on the parsed SecurityMode parameter.

The switch statement explicitly checks for SecurityMode_INSECURE (1) and SecurityMode_SANDBOX (0) but lacks a default handler or generic validation logic to capture integers outside of this range.

When a client submits a crafted request specifying an unmapped integer such as 2, the switch matches neither case, allowing execution flow to slide to the end of the block.

The routine then executes a default fallback statement return nil, nil, which hands back a null array of options alongside a null error state, causing the executor to proceed with no configuration profiles.

Code Analysis

The vulnerable path in the specification generator ignored non-conforming parameters, resulting in a silent failure to apply safety options:

// Vulnerable block in executor/oci/spec_linux.go
func generateSecurityOpts(mode pb.SecurityMode, apparmorProfile string, selinuxB bool) (opts []oci.SpecOpts, _ error) {
    if selinuxB && !selinux.GetEnabled() {
        return nil, errors.New("selinux is not available")
    }
    switch mode {
    case pb.SecurityMode_INSECURE:
        return []oci.SpecOpts{
            security.WithInsecureSpec(),
            oci.WithWriteableCgroupfs,
        }, nil
    case pb.SecurityMode_SANDBOX:
        // Standard sandbox configuration goes here
        if cdseccomp.IsEnabled() {
            opts = append(opts, withDefaultProfile())
        }
        return opts, nil
    }
    return nil, nil // Silent fall-through on unvalidated integers
}

To address this error, the developers created an input validator helper inside solver/pb/securitymode.go:

package pb
 
import "github.com/pkg/errors"
 
// Patched input validator helper
func ValidateSecurityMode(mode SecurityMode) error {
	switch mode {
	case SecurityMode_SANDBOX, SecurityMode_INSECURE:
		return nil
	default:
		return errors.Errorf("invalid security mode %d", mode)
	}
}

This validator function is now actively called at the entry point of the container initialization code, returning a termination error if any anomalous value is detected.

Exploitation Methodology

An attacker begins by preparing low-level builder (LLB) instructions containing a manual modification to the pb.Op structure, setting the SecurityMode property to 2.

The attacker requires permission to issue build instructions or solve requests to an open BuildKit gRPC TCP socket or local UNIX socket.

When BuildKit processes this gRPC request, it skips verification checks for administrative permissions because the value does not register as SecurityMode_INSECURE.

Consequently, the build container is deployed with no active Seccomp profile or AppArmor rules, allowing the container processes to issue raw system calls that would otherwise be blocked.

Technical Impact & Assessment

The successful exploitation of this vulnerability yields a build environment with a degraded security configuration.

While namespace isolation and standard administrative capabilities inside the container remain restricted, the complete removal of Seccomp system call profiling opens up kernel vulnerabilities.

This exposes the host kernel to validation errors, device drivers probing, and other system calls that increase the risk of an escape to the host node.

The CVSS v4.0 rating is calculated as 5.3 due to the low complexity of the request but the reliance on pre-existing gRPC channel authorization.

Remediation and Mitigation

The recommended approach to address the flaw is updating BuildKit installations to the verified release version 0.31.1.

In environments where updates cannot be deployed immediately, administrators must enforce local loopback binding or strict firewall controls on BuildKit gRPC TCP endpoints.

> [!NOTE] > Restricting standard access to socket-level communication paths prevents unauthenticated network-adjacent clients from transmitting arbitrary execution commands.

Official Patches

MobyBuildKit release notes

Fix Analysis (2)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Affected Systems

Moby BuildKit

Affected Versions Detail

Product
Affected Versions
Fixed Version
BuildKit
Moby
< 0.31.10.31.1
AttributeDetail
CWE IDCWE-20
Attack VectorNetwork (AV:N)
CVSS Score5.3
EPSS ScoreN/A
ImpactLow (Confidentiality, Integrity, Availability)
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-20
Improper Input Validation

Improper Input Validation

Vulnerability Timeline

Security patches drafted and reviewed
2026-06-16
CVE-2026-61711 published and GHSA-7236-3392-c5c6 released
2026-08-19
BuildKit release v0.31.1 published
2026-08-19

References & Sources

  • [1]GitHub Security Advisory GHSA-7236-3392-c5c6
  • [2]CVE Record on cve.org

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 3 hours ago•CVE-2026-61712
2.3

CVE-2026-61712: Denial of Service via Unbounded Resource Allocation in moby/buildkit

moby/buildkit is susceptible to a denial-of-service vulnerability prior to version 0.31.1. When BuildKit processes user or group directives from untrusted build contexts or base images, it reads configuration databases such as /etc/passwd and /etc/group directly into memory without enforcing boundaries. An attacker can exploit this behavior by engineering malicious files that trigger host memory exhaustion or block daemon threads indefinitely.

Alon Barad
Alon Barad
2 views•7 min read
•about 4 hours ago•CVE-2026-59992
5.4

CVE-2026-59992: Broken Access Control and Path Traversal in Tina CMS Production Media Adapters

CVE-2026-59992 is a critical broken access control vulnerability in the first-party production media adapters of Tina CMS, including next-tinacms-s3, next-tinacms-dos, next-tinacms-azure, and next-tinacms-cloudinary. The issue allows authenticated editors to escape the configured mediaRoot directory containment, facilitating unauthorized file uploads, modifications, and deletions across the entire storage bucket or container.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 5 hours ago•CVE-2026-63123
6.5

CVE-2026-63123: Cross-Site Request Forgery leading to Cross-Origin Arbitrary File Write in @tinacms/cli

A Cross-Site Request Forgery (CSRF) vulnerability in the local development server of @tinacms/cli allowed malicious cross-origin pages to send state-changing HTTP requests. This issue permitted attackers to write arbitrary files into a developer's project directory or manipulate search and GraphQL indices without authorization.

Amit Schendel
Amit Schendel
5 views•4 min read
•about 6 hours ago•CVE-2026-63188
8.7

CVE-2026-63188: Unauthenticated Directory Traversal in @logto/tunnel

A high-severity path traversal vulnerability exists in the @logto/tunnel npm package (part of the Logto repository) prior to version 0.3.9. Remote unauthenticated attackers can exploit this vulnerability to read arbitrary local files by sending crafted HTTP requests with directory traversal sequences when the static file proxy is active.

Alon Barad
Alon Barad
5 views•7 min read
•about 13 hours ago•CVE-2026-54347
8.7

CVE-2026-54347: Stored Cross-Site Scripting in Froxlor DNS TXT Record Configuration

A critical stored Cross-Site Scripting (XSS) vulnerability was identified in Froxlor server administration software panel before version 2.3.8. Authenticated customers with DNS editor privileges can inject malicious JavaScript into DNS TXT records. Because the application processes these values via a raw formatting callback without context-aware HTML entity encoding, the payload executes in the security context of administrative users who view the affected domain's DNS zones.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 14 hours ago•CVE-2026-54348
7.2

CVE-2026-54348: Second-Order SQL Injection in Froxlor API Layer

An authenticated administrator with privileges to manage admin accounts (such as change_serversettings) can execute arbitrary SQL commands via a second-order SQL injection vulnerability. The flaw resides in Froxlor's administrative API endpoints, specifically during the handling of IP address mapping parameters which are stored as serialized arrays and later interpolated without sanitization into active database queries. This vulnerability allows high-privileged administrative attackers to compromise the database. By injecting a payload into administrative profile metadata, an attacker can extract sensitive credentials, manipulate backend settings, or potentially disrupt database integrity. The vulnerability affects all versions of Froxlor prior to 2.3.8.

Amit Schendel
Amit Schendel
5 views•6 min read