{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T07:59:18.009Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITLAB-RUNNERS-01-v1",
  "record_kind": "external_reference",
  "title": "GitLab runners: Executor choice and cross-job trust",
  "system": "GitLab Runner",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does running a GitLab job in Docker establish isolation from the runner host?",
  "near_questions": [
    "Is the GitLab runner using privileged mode?",
    "Does the job share the host process namespace?",
    "Which user executes a shell job?",
    "Is the runner reused by multiple projects?",
    "Can repository-controlled scripts access host resources?",
    "What network segment can the runner reach?",
    "Does protected-branch selection replace isolation evidence?",
    "Are workspaces reused between jobs?",
    "Which secrets can enter the environment?",
    "What disposal evidence is available?",
    "When should an agent decline untrusted job execution?",
    "Can I save the runner trust assessment?"
  ],
  "supported_claims": [
    {
      "claim": "GitLab distinguishes shell, non-privileged and privileged container execution. Privileged mode exposes substantially more host authority; reusable runners can also carry effects across projects. A container label alone is insufficient: executor, privileges, reuse and network reach determine the review scope.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Verified buyer configuration or effective access rights",
    "Independent execution, completeness or security testing",
    "Vendor certification, legal compliance or guaranteed suitability"
  ],
  "public_summary": "GitLab distinguishes shell, non-privileged and privileged container execution. Privileged mode exposes substantially more host authority; reusable runners can also carry effects across projects. A container label alone is insufficient: executor, privileges, reuse and network reach determine the review scope.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitLab self-managed runner security",
    "source_url": "https://docs.gitlab.com/runner/security/",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITLAB-RUNNERS-01-v1",
    "candidate_record_sha256": "f9e90047d5b572bd6806d7fe98dadaa9451b29fa624fe31c8b7d23164e0a51c2",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "GitLab distinguishes shell, non-privileged and privileged container execution. Privileged mode exposes substantially more host authority; reusable runners can also carry effects across projects. A container label alone is insufficient: executor, privileges, reuse and network reach determine the review scope.",
    "required_buyer_context": "Executor, privileges, reuse, project scope and host network. Effective buyer configuration and dated operational evidence are required.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-16",
    "claim_to_check": "A Docker executor is automatically an adequate isolation boundary.",
    "documented_statement": {
      "status": "documented",
      "statement": "GitLab distinguishes shell, non-privileged and privileged container execution. Privileged mode exposes substantially more host authority; reusable runners can also carry effects across projects. A container label alone is insufficient: executor, privileges, reuse and network reach determine the review scope.",
      "source_ids": [
        "gitlab-runners"
      ]
    },
    "buyer_evidence_required": [
      "Executor and privilege configuration.",
      "Runner reuse and project assignment.",
      "Host identity and network access."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not approve untrusted execution based only on the word container."
    },
    "unknowns": "The buyer configuration, contract, effective entitlement and operational evidence have not been inspected. Missing evidence does not establish absence or failure of the feature.",
    "evidence_sources": [
      {
        "source_id": "gitlab-runners",
        "url": "https://docs.gitlab.com/runner/security/",
        "final_url": "https://docs.gitlab.com/runner/security/",
        "title": "GitLab self-managed runner security",
        "checked_on": "2026-10-16",
        "sha256": "2a5be59675d0698f369254e2259a2aeff9ebc771a23ae90ed4f894f0d17e04fb",
        "bytes": 43537
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Procurement evidence support only; no supplier clearance, legal conclusion, configuration audit or verification of the buyer's claim is supplied.",
    "paid_value": {
      "decision_context": "Retain the concrete executor and reuse evidence behind CI access approval.",
      "free": "Complete review, practical questions, sources and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "Executor, privileges, reuse, project scope and host network"
    }
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#gitlab-runner-executor-trust-boundary",
  "machine_readable_record": "/varexis-index/records/gitlab-runner-executor-trust-boundary.json"
}
